我有2个问题,都是关于点击js。
所以我在一个网站上,我希望自动点击2个按钮,我了解到如果我们getElementbyId.click()
我们可以做到这一点。但这两个按钮都没有ID。我尝试过坐标点击,它不起作用,也没有上课,但无济于事。
<td data-pick="red" class="red" rowspan="2"></td>
如何点击这个?
以及
<button type="submit" class="btn btn-default btn-success">GO</button>
和此。
document.getElementsByClassName
无效:(
答案 0 :(得分:1)
可以使用document.getElementsByClassName
触发点击,但您必须了解从document.getElementsByClassName
返回的内容不是单个元素,而是可以迭代的列表。
您可以通过执行以下操作触发集合中每个项目的点击:
var redClassElements = document.getElementsByClassName('red');
for(var i=0;i<redClassElements.length;i++) {
redClassElements[i].click();
}
如果您没有为正在调用的元素click handler
分配click()
,则无效。
另外,你真的想触发多个元素的点击吗?您最好的选择是将元素指定为已建议的ID。然后,您可以使用document.getElementById('theId').click()
。
答案 1 :(得分:1)
试一试
get
为什么[0]?因为 getElementsByClassName 以数组的形式返回类(匹配DOM元素),所以[0]是这里的索引:-) 对于第二个按钮,您可以使用
触发点击class AwesomeDetail(LoginRequiredMixin, DetailView):
"""
An awesome detail
"""
template_name = "awesomeness/detail.html"
def get(self, request, *args, **kwargs):
self.object = self.get_object()
if not self.request.user in self.object.staff.all():
return redirect('account_login')
else:
return super(AwesomeDetail, self).get(request, *args, **kwargs)
顺便说一句,如果您使用的是jquery,那么为什么不使用
document.getElementsByClassName('red')[0].click();
无论如何,两种解决方案都应该有效。 希望有所帮助: - )
答案 2 :(得分:1)
使用jQuery ..
$('td[class="red"], button[class="btn btn-default btn-success"]').click();