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] - это второй объект кнопки, на который я хочу нажать.

Другие вопросы по тегам