2016-03-11 32 views
0

我有两个问题,都是关于通过js点击。javascript,按钮,点击

所以,我的网站上,我希望在2个按钮自动物理一下,我知道,如果我们getElementbyId.click()我们可以做到这一点。但是这两个按钮都没有ID。我尝试协调点击,它不工作,也是由班级,但无济于事。

我该如何点击?

<button type="submit" class="btn btn-default btn-success">GO</button> 

这。

document.getElementsByClassName不工作:(

+1

你是什么意思'document.getElementsByClassName'不起作用?如果你调用'document.getElementsByClassName('red')',你会得到一个包含'​​'的集合。 –

+0

您是否设置了一个处理程序以在单击元素时运行?还有,你说这些没有身份证。为什么不? – dewd

+0

@MikeC我认为他的意思是说,如果在返回的'HTMLCollection'上调用'click()',它就不起作用。它必须迭代。即使只有1个元素。 – dewd

回答

1

有可能触发使用document.getElementsByClassName了点击,但你必须了解你所得到的来自document.getElementsByClassName回不是一个单独的元素,但你可以遍历列表。

您可以通过执行触发的每个项目点击集合中的以下内容:

var redClassElements = document.getElementsByClassName('red'); 

for(var i=0;i<redClassElements.length;i++) { 
    redClassElements[i].click(); 
} 

这将做什么,如果你还没有分配click handler到ELEM虽然我们正在调用。

另外,你真的要触发多个元素的点击?你最好的选择是按照建议给你的元素分配一个id。然后您可以使用document.getElementById('theId').click()

+0

哦,我的天啊。非常感谢!我用这种方法,但我用我想要的号码取代了我。 –

1

试试这个

document.getElementsByClassName('red')[0].click(); 

为什么[0]?因为getElementsByClassName方法收益类以数组的形式(匹配DOM元素),因此,[0]是该指数在这里:-) 而对于你的第二个按钮就可以触发使用

document.querySelector("button[type=submit]").click(); 

顺便点击如果你正在使用jQuery,那么你为什么不使用

$(".red").click(); 
$("button[type=submit]").click(); 

无论如何这两个解决方案应该工作。 希望帮助:-)

+0

是的两种方法都可以工作!非常感谢您 –

+0

不客气:-)将答案标记为已接受,以便它可以帮助其他人。 –

1

使用jQuery ..

$('td[class="red"], button[class="btn btn-default btn-success"]').click(); 
+0

谢谢您的意见。很受欢迎,我学到了一些东西! –