Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2016, 12:19
Новичок на форуме
Отправить личное сообщение для Maksimaxe Посмотреть профиль Найти все сообщения от Maksimaxe
 
Регистрация: 06.07.2016
Сообщений: 3

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

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

document.getElementById('DocumentDetailForm:detail rocessedDocumentExe: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++;
}
};
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2016, 16:24
Новичок на форуме
Отправить личное сообщение для Maksimaxe Посмотреть профиль Найти все сообщения от Maksimaxe
 
Регистрация: 06.07.2016
Сообщений: 3

Хотя вопрос наверное в том, как сделать задержку между итерациями цикла? Чтоб эти клики были видны?
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2016, 01:31
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

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

Последний раз редактировалось Bond, 07.07.2016 в 01:35.
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2016, 09:17
Новичок на форуме
Отправить личное сообщение для Maksimaxe Посмотреть профиль Найти все сообщения от Maksimaxe
 
Регистрация: 06.07.2016
Сообщений: 3

Сообщение от Bond Посмотреть сообщение
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);

Последний раз редактировалось Maksimaxe, 07.07.2016 в 09:44.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл завершается не дожидаясь выполнения функции leonoff jQuery 2 13.08.2014 16:02
Как подчинить себе цикл wreder jQuery 17 20.11.2013 22:17
Цикл завешивает страницу, помогите Romingood jQuery 5 19.10.2013 14:30
как сделать чтобы цикл не запускался второй раз Brook Events/DOM/Window 5 12.05.2013 21:43
Бесконечный цикл Sundro Общие вопросы Javascript 8 08.08.2011 13:58