我正在试着玩我刚刚发过的Facebook群聊。事实上,我添加了太多人,我需要绝对删除所有人。 这是其中一个按钮的html(它们都共享同一个类):
<a class="_42ft _4jy0 _4jy3 _517h _51sy" role="button" href="#" ajaxify="/chat/remove_participants/?elem_id=u_32_4&uid=1124361845&tid=958151054268315" rel="async-post">Remove</a>
所以,我希望在这里使用它,它会立即点击所有按钮:
document.getElementById('_42ft _4jy0 _4jy3 _517h _51sy').click();
但是错误信息......:
VM1719:1 Uncaught TypeError: Cannot read property 'click' of null(…)
出现..我真的很困惑为什么点击功能不起作用。
干杯
答案 0 :(得分:1)
您正在使用getElementById()
,它会按ID 获取元素。您应该使用getElementsByClassName()
。
var btns = document.getElementsByClassName('_42ft _4jy0 _4jy3 _517h _51sy');
for (let btn of btns) {
btn.click();
}
匹配所有元素,for-of
循环使用选定的类名迭代每个匹配的元素。
答案 1 :(得分:1)
如果要按类名选择DOM树元素,getElementById()
不是正确选项,因为它按ID选择元素。所以,你应该选择getElementsByClassName()
,它返回一个带有该类名的元素数组。然后,您可以遍历元素以编程方式单击它。
var group_chat_buttons = document.getElementsByClassName('_42ft _4jy0 _4jy3 _517h _51sy');
for (i = 0; i < group_chat_buttons.length; ++i) {
group_chat_buttons[i].click();
}