Javascript.RU

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

document.querySelector.click() не срабатывает в цикле :(
Здравствуйте! есть скрипт поиска определенных 5ти цифр в конце элемента (среди множества этих элементов), работает замечательно:

var d = document;
var a = [].map.call(d.querySelectorAll('span.ticket_id'),
function(el){
   var number = el.textContent.slice(-5); return number;
});
console.log(a);
var exit = a.includes("93411", 0);
if (exit) {
   alert('YEAH! Number is find!!!')
} else {
   document.querySelector(".refresh_btn").click();
};


Но как только засовываю его в цикл while, скрипт зацикливается, нажатие по кнопке не срабатывает и браузер виснет, хотя если добавить alertы на каждом шаге, все проходит в нужном порядке, я нуб в js, помогите(
Вот скрипт с циклом:

while (exit != true){
   var d = document;
   var a = [].map.call(d.querySelectorAll('span.ticket_id'),
   function(el){
      var number = el.textContent.slice(-5); return number;
   });
   console.log(a);
   var exit = a.includes("93411", 0);
   if (exit) {
      alert('YEAH! Number is find!!!')
   } else {
      document.querySelector(".refresh_btn").click();
   };
   var d = 0;
   var allInArray = [];
};

<span class="ticket_id">236978445435</span>
<span class="ticket_id">579673264252</span>
<span class="ticket_id">235357579579</span>
<span class="ticket_id">235357857957</span>
<span class="ticket_id">534645768832</span>
<div class="refresh_btn">Получить новые ticked_id</div>


При нажатии на "refresh_btn" элементы обновляются, и прилетают новые)

Последний раз редактировалось Paul123321, 29.01.2020 в 15:32.
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2020, 08:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Paul123321,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

(function loop()
{
var d = document;
var a = [].map.call(d.querySelectorAll('span.ticket_id'),function(el){var number = el.textContent.slice(-5); return number;});
console.log(a);
var exit = a.includes("93411", 0);
if (exit) {alert('YEAH! Number is find!!!')} else {
document.querySelector(".refresh_btn").click();
window.setTimeout(loop, 1000)
};
})()
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2020, 15:35
Новичок на форуме
Отправить личное сообщение для Paul123321 Посмотреть профиль Найти все сообщения от Paul123321
 
Регистрация: 29.01.2020
Сообщений: 2

Прошу прощения, вроде поправил
И да, спасибо большое, про этот вариант не подумал))

Последний раз редактировалось Paul123321, 29.01.2020 в 16:57.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер срабатывает раньше времени или вообще не срабатывает Terebonko Элементы интерфейса 6 03.08.2017 12:43
Навешивать события в цикле Neo54213 Events/DOM/Window 3 01.08.2017 09:46
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39
в цикле JS-скрипта не срабатывает функция miroshni.cs Оффтопик 0 12.10.2012 23:00
popup окно в PHP цикле ryobi522 Общие вопросы Javascript 5 10.02.2012 02:18