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 に答える