Javascript click()命令对文档无效。getElementsByClassName()
我正在用javascript制作自动浏览器脚本,我想在这个网站上使用click()命令,但网站上的按钮没有Id(这很好)。但是,它只有一个类名。当我执行Javascript click()命令对文档无效。getElementsByClassName(),javascript,google-chrome,scripting,Javascript,Google Chrome,Scripting,我正在用javascript制作自动浏览器脚本,我想在这个网站上使用click()命令,但网站上的按钮没有Id(这很好)。但是,它只有一个类名。当我执行document.getElementsByClassName(btn.btn danger.btn lg.btn block.betButton)时,单击()它不起作用 下面是我要单击的按钮的检查: <button class="btn btn-danger btn-lg btn-block betButton" data-color=
document.getElementsByClassName(btn.btn danger.btn lg.btn block.betButton)时,单击()
它不起作用
下面是我要单击的按钮的检查:
<button class="btn btn-danger btn-lg btn-block betButton" data-color="r">1 to 7, Win x2</button>
1比7赢x2
是否可以使用按钮上的click()函数?有没有办法自己分配一个Id?谢谢你的回答:)
我不认为这是一个副本,因为我知道什么不同。但是按钮没有任何Id,只有一个类名。既然这样不行,我还能做些什么来触发click()事件呢
Edit2=有3个按钮具有所有相同的类名唯一的区别是按钮的文本和数据颜色,是否有任何方法可以操作这些按钮?返回一个类似数组的对象
这意味着在您的情况下,您应该得到索引0处的元素,对于您正在构建的应用程序类型来说,该元素应该是您得到的唯一元素:
document.getElementsByClassName('btn btn-danger btn-lg btn-block betButton')[0].click()
否则,如果网站得到更新,并且与选择器匹配的元素更改顺序,那么您的扩展可能会停止工作
还请注意,正如@Barmar指出的,要使用GetElementsByCassName
按多个类进行过滤,应该使用空格,而不是点
假设你有:
<button class="a"></button>
<button class="a b"></button>
<button class="a.b"></button>
<button class="btn btn-danger btn-lg btn-block betButton" data-color="r">1 to 7, Win x2</button>
示例
注意。。。
如图所示,您需要删除
以使其正常工作,因为JavaScript已经知道您正在通过正在使用的函数选择类
使用
JavaScript
document.getElementsByClassName('btn btn-danger btn-lg btn-block betButton')[0].style.backgroundColor = 'red';
document.querySelector('.btn-danger.btn-lg.btn-block.betButton').style.backgroundColor = 'red';
示例
该方法返回元素的集合,而不仅仅是单个元素。请使用
document.querySelector()
而不是document.getElementsByClassName()
。不能将
放在getElementsByClassName
中的类之间。@Barmar的可能重复项不起作用。。。
document.querySelector('.btn-danger.btn-lg.btn-block.betButton').style.backgroundColor = 'red';