我個人喜歡$ .each函數 - 它允許以簡單和相等的方式處理數組和對象。但有時,當應用程序的某些部分將非對象傳遞給該函數時,我得到運行時錯誤'無法獲取未定義的屬性長度'。檢查變量是否適合jQuery每個
這樣的錯誤實際上很難調試,因爲不知道$ .each函數是由哪個函數引起的。所以我認爲 - 在每次$ .each調用之前,對我來說更容易進行對象檢查。
如何檢查對象是否適合$ .each函數?可能有一種方法來擴展jQuery的功能 - 至少知道發送到$ .each的是什麼?因爲過度搜索運行時錯誤是相當困難的 - 我有370+使用$。每個代碼...
在此先感謝!
編輯:
var obj = {1: [{}, {}], 2: []};
$.each(obj, function(key, value){
$.each(value, function(index, el){
//fails with 'Uncaught TypeError: Cannot read property 'length' of undefined'
})
})
'如果(VARIABLENAME && variableName.length){$。每個(...); }'?儘管如此,爲了獲得更好,更有用的答案,您需要向我們展示一些代碼,理想情況下重現失敗的代碼。 – 2015-03-08 19:30:30
用if/else語句檢查,然後將變量傳遞給$ .each。要檢查變量是否是對象,可以使用'typeof(var)'和'var instanceof something'。希望能幫助到你。 – 2015-03-08 19:35:33
您可能可以覆蓋該方法以進行調試或製作自定義方法。找到一個例子[here。](http://www.bennadel.com/blog/1624-ask-ben-overriding-core-jquery-methods.htm)。 – Wilmer 2015-03-08 19:40:16