Я знаю, что вы можете проверить, есть ли у элемента класс с element.classList.contains (class). Однако это не то, что я ищу - я хочу иметь возможность перечислить все элементы, имеющие определенный класс. Для ...

0
cm0973 8 Июл 2021 в 22:34

4 ответа

Лучший ответ

Используйте Array.prototype.map ()

const ids = [...document.querySelectorAll(".class1")].map(el => el.id );
console.log(ids); // ["first", "second"]
2
Roko C. Buljan 8 Июл 2021 в 19:39
let allElements = document.querySelectAll('.class');
allElements.forEach(el=>{

 console.log(el.id);
 });
0
Daniel Oluwadare 8 Июл 2021 в 19:47

Один из способов решить проблему - использовать document.getElementsByClassName.

https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName

const elementsWithClass1 = [...document.getElementsByClassName('class1')]
  .map(element => element.id);

console.log(elementsWithClass1);
<div id="first" class="class1">...</div>
<div id="second" class="class1">...</div>
<div id="third">...</div>
0
Ahmed Saeed 8 Июл 2021 в 19:41

Чтобы создать массив значений атрибутов id:

// create an Array from the iterable NodeList returned by
// document.querySelectorAll():
Array.from(
  // retrieve all elements matching the selector:
  document.querySelectorAll('.class1')
// use Array.prototype.map() to return a new array
// based on the existing Array-elements/values:
).map(
  // using an Arrow function to return the id of
  // each node:
  (el)=>this.id
);
0
David says reinstate Monica 8 Июл 2021 в 19:38