#javascript #list
#javascript #Список
Вопрос:
Существует метод push
, который позволяет расширить список элементами, распакованными из другого списка. Я проверил его с помощью нескольких простых списков чисел, чтобы убедиться, что мой браузер поддерживает его. Это так.
Здесь я пытаюсь сделать то же самое для списка HTML
элементов, но buttons.push is not a function
.
var buttons = document.querySelectorAll('button');
buttons.push(...document.querySelectorAll("input[type = 'submit']"));
Я просматривал веб-страницы, и каждый источник, который я видел, утверждал, что document.querySelectorAll
возвращает a list
. Следовательно, метод должен работать. Почему это не так?
Ответ №1:
document.querySelectorAll
возвращает список узлов, у которого, похоже, нет push
метода.
Массивы JavaScript имеют функцию push, и вы можете преобразовать список узлов в массив с помощью [...nodeList]
Вы могли бы конвертировать между ними следующим образом:
var buttons = [...document.querySelectorAll('button')];
buttons.push(...document.querySelectorAll("input[type = 'submit']"));
Комментарии:
1. Есть ли альтернатива для a
node list
? Что нравитсяpush
?2. Обычным способом представления списка элементов является массив, поэтому традиционной альтернативой списку узлов является массив. Есть ли случай, когда массив не работает для вас?