我个人喜欢$ .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