Как расширить список HTML-элементов в JavaScript?

#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. Обычным способом представления списка элементов является массив, поэтому традиционной альтернативой списку узлов является массив. Есть ли случай, когда массив не работает для вас?