Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript click()命令对文档无效。getElementsByClassName()_Javascript_Google Chrome_Scripting - Fatal编程技术网

Javascript click()命令对文档无效。getElementsByClassName()

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=

我正在用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="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>
  • 卸下

  • 该函数返回一个类似数组的对象,名称中有一个提示,因为它是复数形式,所以必须在数组中指定一个键

  • HTML

    <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';