Javascript单击逐个元素

Cup*_*ava 24 javascript click

所以我正在编写一个可以在页面上运行的脚本,但我想点击这个元素,不幸的是,它没有id得到,我试图使用.click()它上面的功能,但它不起作用,这里是我有什么,谁知道如何解决它?这也是该课程中唯一的元素

var classes = document.getElementsByClassName('rateRecipe btns-one-small');
var Rate = classes[0];
Rate.click();
Run Code Online (Sandbox Code Playgroud)

Dav*_*mas 36

我建议:

document.querySelector('.rateRecipe.btns-one-small').click();
Run Code Online (Sandbox Code Playgroud)

上面的代码假定给定元素具有这两个类; 否则,如果该空间意味着暗示祖先 - 后裔关系:

document.querySelector('.rateRecipe .btns-one-small').click();
Run Code Online (Sandbox Code Playgroud)

该方法getElementsByClassName()采用单个类名(而不是document.querySelector()/ document.querySelectorAll(),它采用CSS选择器),并且您将两个(可能是类名)传递给该方法.

参考文献:

  • 仅供参考,`getElementsByClassName`接受多个类,因此@ user3010773的原始代码可以正常工作,如果他试图选择具有两个类的单个元素.http://jsfiddle.net/u94wtpcn/ (2认同)

Ole*_*aev 8

如果要单击某个类选择的所有元素,可以使用此示例(在Loved轨道页面上的last.fm上使用以全部取消).

var divs = document.querySelectorAll('.love-button.love-button--loved'); 

for (i = 0; i < divs.length; ++i) {
  divs[i].click();
};
Run Code Online (Sandbox Code Playgroud)

使用ES6和Babel(不能直接在浏览器控制台中运行)

[...document.querySelectorAll('.love-button.love-button--loved')]
   .forEach(div => { div.click(); })
Run Code Online (Sandbox Code Playgroud)


sif*_*_in 7

正是您想要的(如果您知道按钮的索引):

var rate = document.getElementsByClassName('rateRecipe btns-one-small')[0];
rate.click();
Run Code Online (Sandbox Code Playgroud)

或直接采取行动

document.getElementsByClassName('rateRecipe btns-one-small')[0].click();
Run Code Online (Sandbox Code Playgroud)

使用 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
});
Run Code Online (Sandbox Code Playgroud)