#javascript #html #web-scraping #browser-automation
#javascript #HTML #очистка веб-страниц #браузер-автоматизация
Вопрос:
Итак, я пытаюсь получить элемент button со страницы по имени класса. Но эта функция, а также queryselector возвращают неопределенное значение. В чем может быть причина? Может ли это быть потому, что этот элемент является дочерним элементом другого элемента?
var checkout_btn = document.getElementsByClassName('button-submit');
console.log("INITIALIZED");
console.log(checkout_btn);
Комментарии:
1. используйте запросы для выбора,
var btn = document.querySelector(".button-submit");
2. Опубликованный вами код в порядке, это не проблема. Мы не можем помочь, потому что у нас недостаточно информации. Если мне нужно угадать, просто убедитесь, что вы выполняете его после загрузки DOM. Вы также можете поместить его в конец страницы, непосредственно перед
</body>
тегом.3. @TudorAlexandru попробовал. Тот же результат.
4. @kosmos я просто поместил его в функцию window.onload. Происходит то же самое. Также я делаю это с помощью скрипта содержимого для расширения Chrome, может быть, это причина? Еще одна странность заключается в том, что если я нахожу элементы по тегу button, он находит нужный мне элемент, но когда я обращаюсь к нему с помощью индекса, он говорит null.
Ответ №1:
создайте и используйте идентификатор вместо className или попробуйте этот документ.getElementsByClassName(«кнопка-отправить»)[0]
ps. Потому что getElementsByClassName возвращает массивоподобный объект всех дочерних элементов, которые имеют все заданные имена классов.
Комментарии:
1. Я не могу создать идентификатор, он предназначен для расширения Chrome, которое выполняет скрипт содержимого на чужом веб-сайте.
2. итак, попробуйте 2-й, с className[0]