所以我正在编写一个可以在页面上运行的脚本,但我想点击这个元素,不幸的是,它没有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选择器),并且您将两个(可能是类名)传递给该方法.
参考文献:
如果要单击某个类选择的所有元素,可以使用此示例(在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)
正是您想要的(如果您知道按钮的索引):
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)