2015-11-10 3 views
2

Я получаю NodeList (который, по существу, массив типа Object), используя querySelectorAll следующим образом:Невозможно использовать сращивание с NodeList возвращенного querySelectorAll

var elements = document.getElementById('something').querySelectorAll('.lazy'); 

Тогда, я стараюсь, чтобы удалить один элемент из этого NodeList с помощью splice:

elements.splice(0, 1); 

И я получаю следующее сообщение об ошибке:

elements.splice is not a function. 

Как удалить элемент из NodeList? В качестве альтернативы, должен ли я хранить каждый элемент NodeList в массиве и использовать сплайсинг?

ответ

1

NodeList не является Array или его подтипом, поэтому у него не будет доступа к Array.prototype.splice.

Если вы хотите использовать splice, вы можете преобразовать его в массив первого:

var elementArray = Array.prototype.slice.call(elements);

Edit: К сожалению, у сплайсинга и ломтик перепутаны.

+0

У меня есть ошибка: TypeError: Невозможно установить длину свойства # , у которой есть только получатель –

+0

Получил «сращивание» и «срез». Вы можете передать NodeList на срез, а не на сращивание. – TbWill4321

Смежные вопросы