gpt4 book ai didi

javascript - 将 getElementById 返回值视为数组

转载 作者:行者123 更新时间:2023-11-28 11:10:45 24 4
gpt4 key购买 nike

我有一个 Javascript 如下;

if (document.getElementsByClassName('someClass'))
{
obj = document.getElementsByClassName('someClass');
}
else if (document.getElementById('someId'))
{
obj = document.getElementById('someId');
}

现在有一个 for 循环作用于这个“obj”

for(i=0; i<obj.length;i++){
obj[i].addEventListener() // Pseudo code shown here
}

问题是,如果 obj 作为数组返回,即从 document.getElementsByClassName 返回,则此方法可以正常工作。

但如果 document.getElementById('someId') 为 true,则不会返回数组,并且 for 循环将无法执行。

鉴于我无法对 HTML 代码本身执行任何操作,如何解决此问题?

谢谢。

最佳答案

您可以简单地创建一个数组:

else if (document.getElementById('someId')) {
obj = [document.getElementById('someId')]; // note the array literal
}

getElementById 的返回值将始终是一个 DOM 元素,因此您无法更改它。 ID 应该是唯一的,因此即使您有多个具有相同 ID 的元素,它也只会返回其中之一。

鉴于 IE8 及更低版本中不存在 getElementsByClassName,您还应该查看 document.querySelectorAll [docs] (至少在 IE8 中有效)。

关于javascript - 将 getElementById 返回值视为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6757964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com