Как отличить живые и неживые коллекции NodeList?

И document.getElementsByTagName('div'), и document.querySelectorAll('div') возвращают коллекцию NodeList. Единственное отличие состоит в том, что первый метод возвращает live-collection, а второй - статический.

Вопрос: есть ли возможность отличить один объект от другого только путем проверки этих объектов (т.е. не пытаться добавить/удалить некоторые элементы для проверки "живой" )?

заблаговременно

Ответы

Ответ 1

Интерфейс NodeList является агностиком его мертвого или живого состояния.

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

Он содержит только свойство length и метод item, поэтому я боюсь, что в настоящее время невозможно определить, жив ли объект, не манипулируя DOM и не видя эффекты.

Ответ 2

a=document.querySelectorAll('a');
b=document.getElementsByTagName('a');

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

(в FF/Chrome)