Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение номера элемента в document.querySelectorAll внутри цикла for (https://javascript.ru/forum/events/80783-izmenenie-nomera-ehlementa-v-document-queryselectorall-vnutri-cikla.html)

vladik3333 31.07.2020 21:21

Изменение номера элемента в document.querySelectorAll внутри цикла for
 
Здравствуйте.
На сайте присутствует код:
<span class="task">текст1</span>
<span class="task">текст2</span>
<span class="task">текст1</span>
<span class="task">текст3</span>
<span class="task">текст2</span>


Есть функция, в которой определяется общее количество элементов с нужным классом, и в ней нужно в соответствии с полученным значением выполнить цикл с изменением значения в индексе document.querySelectorAll, а именно в квадратных скобках []:
function test1(){
var ob =[...document.querySelectorAll("span[class='task']")].length;
alert(ob);
//в данном примере будет 5
if(ob==5){
  for (var i = 0; i < ob; i++) {
    var t1 = document.querySelectorAll("span[class='task']")[0].textContent;
    alert(t1);
  }
}
}


Ну то есть каждый проход должно меняться значение, то есть так [0]->[1]->[2]->[3]->[4], и соответственно alert в данном примере должен выводить по очереди текст1->текст2->текст1->текст3->текст2

Заранее благодарен за помощь:victory:

рони 31.07.2020 21:28

vladik3333,
снова подожду переводчика.

vladik3333 31.07.2020 22:28

Проблему решил, вроде работает
function test1(){
var twe = document.querySelectorAll("span[class='task']");
var ob = [...twe].length;
if(ob==5){
  for(var i = 0; i < twe.length; i++) {
    var t1 = twe[i].textContent;
    alert(t1);
  }
}
}

рони 31.07.2020 22:53

vladik3333,
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<span class="task">текст1</span>
<span class="task">текст2</span>
<span class="task">текст1</span>
<span class="task">текст3</span>
<span class="task">текст2</span>

<script>
function test1(){
var twe = document.querySelectorAll("span[class='task']");
var ob = twe.length;
if(ob == 5) for(var {textContent} of twe) alert(textContent);
}
test1()
</script>
</body>
</html>


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