在 getElementById 中添加多个 id

Add multiple ids in getElementById

如何使用多个id的脚本?不适用于我尝试添加的第二个 ID

<script type="text/javascript">
window.onload = (function () {
var elem = document.getElementById("id1","id2").onclick = function()
{
fbq('track', 'InitiateCheckout');
}
});
</script>

getElementById只接受一个参数,就是你要select的元素的id。您不能向 id 传递一个以上的 id。

有关这方面的更多文档,请查看 here

如果您想 select 多个元素并为它们附加相同的事件处理程序,您可以使用另一种方法。

首先你必须为每个添加相同的 class,例如 js-classname.

然后你可以select他们使用方法getElementsByClassName。此方法将为您 return 一个类似对象的数组,其中包含具有您指定的 class 的所有元素。

如果您需要更多相关信息,请查看 here

您可以使用 querySelectorAll 到 select 许多项目的 ID:

var items = document.querySelectorAll('#id2, #id3, #id5');

for (var i = 0; i < items.length; i++)
{
  items[i].onclick = function() { 
    this.innerText = this.innerText + '!';
  };
}
2, 3, 5 are working:

<p id="id1">I am 1</p><p id="id2">I am 2</p><p id="id3">I am 3</p><p id="id4">I am 4</p><p id="id5">I am 5</p>

但是,创建一个通用 class 听起来好多了。

getElementById 只需要一个 ID,但您可以对 select 多个元素执行此操作:

document.querySelectorAll('#id1, #id2');

...但是您不应该使用它来为每个元素创建事件侦听器。最好为整个文档创建一个事件侦听器,例如:

document.addEventListener('click', handleClickEvents, false);

function handleClickEvents(evt) {
    myEventTarget = event.target;

    if (myEventTarget.id === 'id1') {

    } else if (myEventTarget.id === 'id2) {

    }
}

...甚至更好,使用像 React 或 Angular.

这样的框架