Как различать живые и неживые коллекции NodeList?
оба документа.getElementsByTagName ('div') и документ.querySelectorAll ('div') возвращает коллекцию NodeList. Разница лишь в том, что первый метод возвращает live-collection, а второй - статический.
вопрос в том, есть ли возможность отличить один объект от другого только путем проверки этих объектов (i.e - не пытается добавить / удалить некоторые элементы для проверки "живости")?
спасибо заранее
2 ответов
на NodeList
интерфейс агностик своего мертвого или живого состояния.
interface NodeList {
Node item(in unsigned long index);
readonly attribute unsigned long length;
};
Он содержит только свойство length
, и метод item
поэтому я боюсь, что в настоящее время невозможно определить, является ли объект живым, не манипулируя DOM и не видя эффектов.
a=document.querySelectorAll('a');
b=document.getElementsByTagName('a');
a.toString() == "[object NodeList]"
b.toString() == "[object HTMLCollection]"
(в FF/Chrome)