.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, время: 00:08. |