Javascript Нажмите на элемент по классу
Поэтому я пишу сценарий, который можно запустить на странице, но я хочу нажать на этот элемент, к сожалению, он не имеет id
чтобы получить, и я пытаюсь использовать .click()
функционировать на нем, но он не работает, вот что у меня есть, кто-нибудь знает, как это исправить? Это единственный элемент в классе также
var classes = document.getElementsByClassName('rateRecipe btns-one-small');
var Rate = classes[0];
Rate.click();
4 ответа
Я бы предложил:
document.querySelector('.rateRecipe.btns-one-small').click();
Приведенный выше код предполагает, что данный элемент имеет оба этих класса; в противном случае, если пробел подразумевает отношения предок-потомок:
document.querySelector('.rateRecipe .btns-one-small').click();
Метод getElementsByClassName()
занимает одно имя класса (а не document.querySelector()
/ document.querySelectorAll()
, который принимает CSS-селектор), и вы передали два (предположительно, имена классов) методу.
Рекомендации:
document.getElementsByClassName()
,document.querySelector()
,
Если вы хотите щелкнуть по всем элементам, выбранным некоторым классом, вы можете использовать этот пример (используется на ht tp://last.fm/ на странице "Любимые треки", чтобы "Разблокировать все").
var divs = document.querySelectorAll('.love-button.love-button--loved');
for (i = 0; i < divs.length; ++i) {
divs[i].click();
};
С ES6 и Babel (не может быть запущен в консоли браузера напрямую)
[...document.querySelectorAll('.love-button.love-button--loved')]
.forEach(div => { div.click(); })
именно то, что вы хотите (если вы знаете индекс кнопки):
var rate = document.getElementsByClassName('rateRecipe btns-one-small')[0];
rate.click();
или для прямого действия
document.getElementsByClassName('rateRecipe btns-one-small')[0].click();
с jQuery
$('.rateRecipe .btns-one-small').click(function(){
var vIndex = $('.rateRecipe .btns-one-small').index(this);
//vIndex is the index of buttons out of multiple
//do whatever
//alert($(this).val());//for value
});
Класс моей кнопки "input-addon btn btn-default fileinput-существует"
код ниже помог мне
document.querySelector('.input-addon.btn.btn-default.fileinput-exists').click();
но я хочу нажать вторую кнопку, у меня есть две кнопки на моем экране, поэтому я использовал querySelectorAll
var elem = document.querySelectorAll('.input-addon.btn.btn-default.fileinput-exists');
elem[1].click();
здесь elem[1] - это второй объект кнопки, на который я хочу нажать.