Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   document.getElementById и цикл (https://javascript.ru/forum/misc/63885-document-getelementbyid-i-cikl.html)

Maksimaxe 06.07.2016 12:19

document.getElementById и цикл
 
Добрый день, прошу помощи.

Есть цикл который должен выполнять

document.getElementById('DocumentDetailForm:detail :processedDocumentExe:detail:works:r:'+ i +':expand').click(); столько раз сколько в переменной len_p. Сейчас выполняется только один клик по последнему элементу, что нужно чтоб клик выполнялся по всем элементам.

function co(){
var len_p = document.getElementsByClassName('TableDetailHeader').length;
var i = 0;
while (i < len_p) {
document.getElementById('DocumentDetailForm:detail:processedDocumentExe:detail:works:r:'+ i +':expand').click();
  alert( i ); 
  i++;
}
};

Maksimaxe 06.07.2016 16:24

Хотя вопрос наверное в том, как сделать задержку между итерациями цикла? Чтоб эти клики были видны?

Bond 07.07.2016 01:31

Maksimaxe,
Задержка цикла не канает. Можно воспользоваться setInterval где можно самому задать интервал с которым будет выполняться то что надо. Перед запуском setInterval создать переменную равную 0 и с каждым выполнением увеличивать на единицу, а когда переменная станет равной переменной len_p удалять setInterval.
https://learn.javascript.ru/settimeout-setinterval

Maksimaxe 07.07.2016 09:17

Цитата:

Сообщение от Bond (Сообщение 421465)
Maksimaxe,
Задержка цикла не канает. Можно воспользоваться setInterval где можно самому задать интервал с которым будет выполняться то что надо. Перед запуском setInterval создать переменную равную 0 и с каждым выполнением увеличивать на единицу, а когда переменная станет равной переменной len_p удалять setInterval.
https://learn.javascript.ru/settimeout-setinterval

Спасибо за совет,

сделал так:

var len_p = document.getElementsByClassName('q').length;
var id_p = 0;
var timerId = setInterval(function() {
  document.getElementById('DocumentDetailForm:detail:processedDocumentExe:detail:works:r:'+id_p+':expand').click();
  ++id_p;
  if (id_p == len_p){
	clearInterval(timerId);
	alert( 'stop' );
  };
}, 1000);


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