如何在querySelectorAll上使用JavaScript触发click事件

Jag*_*n K 16 html javascript

在jQuery中,我有以下代码

$("li#credit").trigger('click');
Run Code Online (Sandbox Code Playgroud)

此代码仅在具有id信用的li上触发click事件.

现在使用JavaScript执行此操作

document.querySelectorAll("li#credit").click();
Run Code Online (Sandbox Code Playgroud)

我收到错误:

click()不是函数

我正在使用的页面有多个id为"credit"的元素,我只需要在<li>id为credit的情况下触发click事件.

Tas*_* K. 24

querySelectorAll返回NodeList对象()而不是DOM元素.NodeList对象包含DOM元素.

您的代码需要更改以获取第一个元素,然后调用click():

document.querySelectorAll("li#credit")[0].click();
Run Code Online (Sandbox Code Playgroud)

如果要将.click()事件触发到所有元素,可以执行for循环

for(var i = 0; i<elems.length; i++) {
    elems[i].click();
}
Run Code Online (Sandbox Code Playgroud)


fan*_*hzh 22

我发现这个很干净简单.

Array.from(document.querySelectorAll("ali#credit")).forEach(button=>button.click())
Run Code Online (Sandbox Code Playgroud)

来自这个网站:https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/#comment-1602558