.click() по элементам
Почему не работает .click() на элементе. Пробегаюсь по списку через цикл, нахожу нужный, ставлю ему click, но сам клик не срабатывает. Через debugger и напрямую (без цикла) все отлично работает
|
Nikolay37,
где код? |
Цитата:
let baseName = "apple,pineapple,translate".split(',') let i=0 let n=0 start() function start(){ for(i;i<document.getElementsByClassName('name').length;i++){ if(document.getElementsByClassName('name')[i].innerText == baseName[n]){ document.getElementsByClassName('name')[i].click() } if(n < baseName.length -1){ i=0 n++ start() } } } |
Nikolay37, пример нужен полный, с хтмэлем...
|
Цитата:
|
Цитата:
Цитата:
|
Nikolay37, пока не понятно зачем применяется рекурсивный вызов функции вместо обычного цикла...
Так же трижды используется document.getElementsByClassName('name') |
:-? start плохое имя для функции, может переименовать
|
Цитата:
Текущий код будет проверять только первый элемент выборки на соответствие его контента значению эл. массива basename. Попробуйте так: let baseName = "apple,pineapple,translate".split(',') let i = 0 let n = 0 let nodes = document.getElementsByClassName('name'); console.log('Найдено элементов: ' + nodes.length); start() function start() { for (i; i < nodes.length; i++) { console.log(nodes[i].innerText + ' == ' + baseName[n] + ' -> ' + (nodes[i].innerText == baseName[n] ? 'true' : 'false')); if (nodes[i].innerText == baseName[n]) { console.log('CLICK'); nodes[i].click(); break; //Если нужно кликнуть только по одному элементу } } if (n < baseName.length - 1) { i = 0 n++ console.log('Restart'); start() } } |
Цитата:
"Так же трижды используется" document.getElementsByClassName('name')[/quote] Ну я могу в целом это в переменную записать, смысл не изменится |
Часовой пояс GMT +3, время: 19:35. |