Uncaught TypeError: Cannot read property 'length' of undefined:node
例如:在treegrid的行編輯中,在執行了onAfterEdit()方法以後,會自動執行onLoadSuccess()方法,從服務器從新加載數據,若是服務器返回的數據爲null,那麼就會拋出這樣一個錯誤,jquery
源碼爲:服務器
var isArray = $.array.likeArray(data) && !$.util.isString(data), rows = isArray ? data : data.rows; f (!rows.length) { return data; }//這句話拋出錯誤,此錯誤會致使不會執行onLoadSuccess()方法,即頁面的原有的數據不會發生改變
Uncaught TypeError: Cannot read property 'id' of undefined"異步
錯誤2:函數
這個錯誤極可能的緣由是:url
--例如treegrid,異步加載樹code
代碼:對象
$("#xmzj").treegrid("expand", id);//展開該節點 $("#xmzj").treegrid("scrollTo",index);//滾動到行標爲index的記錄 $("#xmzj").treegrid("select", id);//選擇記錄 //id節點在treegrid中自己是存在的,可是在當前樹中因爲是異步加載,可能並無加載出來,那麼在expand的時候並不會主動發送url請求,expand展開的原理是展開已經有的樹節點,主動發送請求加載該節點下的子節點;若是該節點並無實際存在,那麼不會展開,scrollTo是滾動到索引爲index的記錄,若是該樹實際已經存在該索引,那麼則滾動到,若是不存在,也不會報錯;可是第三句select,會根據id去該樹幾點尋找已經存在的id值的記錄,若是存在,則選擇;不存在,會報錯,說id is undefined.因此說報id爲定義的錯誤,確定是某個地方用到這個id,可是根據這個id來操做的時候,發生了錯誤. 還有中可能:好比加載treegrid的數據的時候,返回過來的row中沒有id屬性,而treegrid中以idField:'id',即該treegrid以id來做爲惟一標識,那麼若是row中若是沒有id屬性存在,那麼確定會報Uncaught TypeError: Cannot read property 'id' of undefined" 錯誤,由於row中其餘屬性均可以沒有,可是id屬性必須存在.
Uncaught TypeError: Cannot read property 'nodeName' of undefined:索引
該錯誤極可能是利用利用jquery獲取到某些元素以後,而後操做該元素的一些屬性引發的,由於這些屬性沒有定義源碼
例如:
/*在銷燬編輯框的時候,第一個參數表示該treegrid控件,第二個表示一個object對象,若是該控件寫錯了, 好比應該要寫成$("#xmzj")[0],可是寫成了一個$("xmzj")[0],由於後面寫錯的獲得了一個null的元素,那麼進入_destroyCellEditor()函數在其中操做空元素來操做一些屬性的時候就會報這個錯誤*/ _destroyCellEditor($(name)[0],{index:rowIndex,field:field});