Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2010, 17:54
Аватар для Cooskon
Интересующийся
Отправить личное сообщение для Cooskon Посмотреть профиль Найти все сообщения от Cooskon
 
Регистрация: 15.01.2010
Сообщений: 28

Чем отличаются объекты HTMLCollection и NodeList?
Сабж. Вроде бы и работается с ними одинаково, и на удаление элементов они оба реагируют изменением свойства length.
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2010, 18:13
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

В HTMLCollection есть метод namedItem, осуществляющий поиск по имени. Также поиск может осуществляться через обращение к свойству, соотв. имени или ID элемента.
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2010, 18:16
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

HTMLCollection используется для таких коллекций, как:
  • window.frames
  • document.images
  • document.applets
  • document.links
  • document.forms
  • document.anchors
  • form.elements
  • table.rows
  • и т.д.

HTMLCollection.prototype.test = function () {
    alert("O_o");
};

document.links.test();

try {
    document.getElementsByTagName("*").test();
} catch (error) {
    alert(error);
}
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2010, 18:21
Аватар для Cooskon
Интересующийся
Отправить личное сообщение для Cooskon Посмотреть профиль Найти все сообщения от Cooskon
 
Регистрация: 15.01.2010
Сообщений: 28

Сообщение от exec
В HTMLCollection есть метод namedItem, осуществляющий поиск по имени. Также поиск может осуществляться через обращение к свойству, соотв. имени или ID элемента.
Сомнительный метод. Зачем получать элемент по id из коллекции, если проще сделать document.getElementById? Хотя поиск по имени - хорошая штука.

А что в таком случае есть у NodeList такого, чего нет у HTMLCollection?

Сообщение от Octane
HTMLCollection используется для таких коллекций, как:
Об этом я знаю: собственно, так и узнал о существовании этих двух объектов, сравнивая ошибки, выдаваемые document.getElementsByTagName("tag").notSetMethod( ) и element.children.notSetMethod();

Чем же функционально различаются эти объекты (ну, кроме метода namedItem, описанного выше), так и не сказано.

Последний раз редактировалось Cooskon, 12.09.2010 в 18:45. Причина: объединение подряд идущих сообщений
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2010, 18:32
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Ну метод namedItem не обязательно вызывать, можно же так сделать: document.forms["reg-from"].elements["given-name"], а с NodeList такое не прокатит.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск