在getElementById中添加多个id

时间:2015-11-19 08:31:32

标签: javascript getelementbyid

如何将此脚本与多个ID一起使用?不适用于我尝试添加的第二个ID

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

3 个答案:

答案 0 :(得分:5)

您可以使用querySelectorAll按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>

但是,创建一个公共类听起来要好得多。

答案 1 :(得分:3)

getElementById只接受一个I​​D,但您可以这样做以选择多个元素:

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这样的框架。

答案 2 :(得分:1)

getElementById只接受一个参数,即您要选择的元素的ID。你不能传递给id多个id。

有关此问题的更多文档,请查看here

如果要选择多个元素并将相同的事件处理程序附加到它们,则可以使用其他方法。

首先,您必须为每个类添加相同的类,例如js-classname。

然后您可以使用getElementsByClassName方法选择它们。此方法将返回一个类似于对象的数组,其中包含您指定的类的所有元素。

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