Сообщение от Nexus
|
Что тут хорошего?
Вы пытаетесь в 6-й строке пробежаться по всем элементам с классом "name", но сразу же в конце первой итерации вызываете эту функцию вновь сбрасывая счетчик "i" и инкрементируя значение "n". Т.е. при втором вызове этой функции проверяться будет снова первый элемент с классом "name", но уже искомое значение будет другим.
После того, как счетчик "n" превысит baseName.length продолжат выполняться предыдущие циклы. Они будут проверять соответствие контента элементов (начиная со второго и до конца) с классом "name", но т.к. n==baseName.length, то искать циклы будут элемент, чей контент равен null. Т.е. условие для элементов с индексом > 1 никогда не выполнится, поскольку строка никогда не будет равна null (равна !== эквивалентна).
Upd. [][1]===undefined, т.е. в тексте выше "null" читайте как "undefined", но сути не меняет.
|
Прошу прощенья, ошибся чутка, вот правильный код, который я использовал. Сначала не увидел ошибки:
let baseName = "apple,pineapple,translate".split(',')
let i = 0
let n = 0
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()
}
}
Если открыть debugger в начале исполнения фун-и, то она работает хорошо и клик по элементу срабатывает