13

document.getElementsByTagName('div') と document.querySelectorAll('div') の両方が NodeList コレクションを返します。唯一の違いは、最初のメソッドがライブ コレクションを返し、2 番目のメソッドが静的コレクションを返すことです。

問題は、これらのオブジェクトを検査することによってのみ、あるオブジェクトを別のオブジェクトと区別する機会はありますか (つまり、「ライブネス」をテストするためにいくつかのアイテムを追加/削除しようとしないでください)?

前もって感謝します

4

2 に答える 2

6

NodeListインターフェイスは、デッドステータスまたはライブステータスに依存しません。

interface NodeList {
  Node item(in unsigned long index);
  readonly attribute unsigned long length;
};

プロパティlengthとメソッドのみが含まれているitemため、現在、DOMを操作して効果を確認せずに、オブジェクトがライブであるかどうかを判断することはできません。

于 2010-07-27T17:21:55.890 に答える
6
a=document.querySelectorAll('a');
b=document.getElementsByTagName('a');

a.toString() == "[object NodeList]"
b.toString() == "[object HTMLCollection]"

(FF/クローム)

于 2011-03-11T05:40:55.967 に答える