Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Собрать данные из div в массив (https://javascript.ru/forum/misc/84091-sobrat-dannye-iz-div-v-massiv.html)

chester 01.06.2022 14:17

Собрать данные из div в массив
 
Доброго времени суток. помогите новичку. Имею следующий html код
Код:

<div class="wrap">
  <div class="num">1</div>
  <div class="num">2</div>
  <div class="num">3</div>
  <div class="num">4</div>
  <div class="num">5</div>
</div>

Необходимо значения div'ов c классом "num" собрать в массив, для последующей подстановки в виде переменной в качестве данных в скрипт графика.
Пробую таким образом
var array = document.getElementByClassName('num').innerHTML;

но не катит:blink:

ksa 01.06.2022 14:27

Цитата:

Сообщение от chester
Пробую таким образом
var array = document.getElementByClassName('num').innerHTML;

но не катит

С чего бы этому "катить"?
Ведь такого метода (getElementByClassName) нет в JS.
Есть getElementsByClassName... И это будет целая коллекция таких элементов.

chester 01.06.2022 14:32

Ага. Но все равно "undefined".

рони 01.06.2022 14:34

chester,
цикл по всем элементам списка, метода хором в js нет.

рони 01.06.2022 14:45

chester,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 </head>

<body>
<div class="wrap">
   <div class="num">1</div>
   <div class="num">2</div>
   <div class="num">3</div>
   <div class="num">4</div>
   <div class="num">5</div>
</div>
<script>
   const array = Array.from(document.getElementsByClassName('num'), ({firstChild : {data}}) => Number(data));
   alert(JSON.stringify(array));
</script>
</body>
</html>


ну и классика ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 </head>

<body>
<div class="wrap">
   <div class="num">1</div>
   <div class="num">2</div>
   <div class="num">3</div>
   <div class="num">4</div>
   <div class="num">5</div>
</div>
<script>
   const divs = document.getElementsByClassName('num');
   const array = [];
   for (let i = 0; i < divs.length; i++) { array.push(+divs[i].textContent)}
   alert(JSON.stringify(array));
</script>
</body>
</html>

chester 01.06.2022 15:00

Спасибо. Кому что). Не знаю почему, но с JS туплю постоянно. PHP залетает как к себе домой, а это никак.


Часовой пояс GMT +3, время: 07:25.