1
var result = Object.prototype.toString.call(nodes);
return (
    typeof nodes === 'object'
    &&
    /^\[object (HTMLCollection|NodeList|Object)\]$/.test(result)
    &&
    nodes.hasOwnProperty('length')
    &&
    (nodes.length == 0 || (typeof nodes[0] === "object" && nodes[0].nodeType > 0))
)

这在 Chrome 中可以正常工作,但在 IE8(也可能是 7)中会引发错误。在线发生错误return

这是我从这里的某个地方偷来的(我会继续寻找链接)。它应该确定给定对象 ( nodes) 是否是节点列表。这个错误有很多结果,但我找不到这个案例。有什么东西跳出来攻击任何人吗?

谢谢!

4

1 回答 1

2

感谢@STLRick:

Object.prototype.hasOwnProperty.call(nodes, 'length')

好像已经修好了!至少,它不再抛出错误了。不是 100% 确定它是否会影响节点检查,但它在我正在运行的几个测试用例中工作!

于 2012-11-19T19:30:25.363 回答