javascript,按钮,单击

时间:2016-03-11 18:55:50

标签: javascript jquery html

我有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无效:(

3 个答案:

答案 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();