Когда работает NodeList и когда он статичен?

Из MDN для NodeList :

  

В некоторых случаях NodeList является живой коллекцией, что означает, что   Изменения в DOM отражены в коллекции. Например,   Node.childNodes работает:

 var parent = document.getElementById('parent');
 var child_nodes = parent.childNodes;
 console.log(child_nodes.length); // let's assume "2"
 parent.appendChild(document.createElement('div'));
 console.log(child_nodes.length); // should output "3"
     

В других случаях   NodeList - это статическая коллекция, означающая любое последующее изменение   DOM не влияет на содержание коллекции.   document.querySelectorAll возвращает статический NodeList.

Так что ... немного раздражает! Есть ли какая-либо центральная ссылка, для которых методы возвращают живые списки, а какие возвращают статические списки, без необходимости проверять отдельно все части API DOM? Есть ли здесь правило на работе?

47 голосов | спросил temporary_user_name 27 Jam1000000amTue, 27 Jan 2015 07:02:02 +030015 2015, 07:02:02

1 ответ


0

Я не знаю, есть ли центральная ссылка, но этот пост в блоге говорит:

  

document.getElementsByTagName(), document.getElementsByTagNameNS и ---- +: = 2 =: + ---- - единственные доступные опции, которые возвращают «живые» списки узлов. Глядя на эти методы, вы можете быть обескуражены, но это не так.

ответил Barmar 27 Jam1000000amTue, 27 Jan 2015 07:10:09 +030015 2015, 07:10:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132