@MaxBat

Как нажать на все блоки с данным классом на странице с помощью JS?

На странице есть несколько блоков с классом "CLASSNAME". В консоли браузера выполняю следующий скрипт
var elems = document.getElementsByClassName('CLASSNAME');
for (let i =0; i<elems.length; i++){
    alert(i);
    elems[i].click();
}


Нажатие фиксируется только в первом элементе. Если писать по одному, например
var elems = document.getElementsByClassName('CLASSNAME');
elems[5].click();

То нажатие на 5 элементе фиксируется без проблем.
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега JavaScript
Python, JS, WordPress, SEO, Bots, Adversting
1. Получаем все элементы методом .querySelectorAll().
2. Перебираем п1. методом .forEach().
3. Печатаем элемент и его номер из п1. (для наглядности) + кликаем по элементу п2. методом .click().
document.querySelectorAll('.CLASSNAME').forEach((el, i) => {
    console.log(`Element №${i}, `, el);
    el.click();
});

Пример с ожидаем в 1 секунду, перед сбором и кликом по элементам:
setTimeout(() => {
    document.querySelectorAll('.CLASSNAME').forEach((el, i) => {
        console.log(`Клик по элементу №${i}, `, el);
        el.click();
    });
}, 1000);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы