在for语句中使用数组为getElementById选择id将返回"null"的原因是,getElementById方法是通过元素的id属性来获取对应的元素节点,而在HTML文档中,id属性的值必须是唯一的,不能重复。如果使用数组作为参数传递给getElementById方法,它会将数组转换为字符串,然后尝试根据该字符串查找对应的元素节点,但是由于数组转换为字符串后的格式不符合id属性的要求,所以无法找到对应的元素节点,最终返回"null"。
解决这个问题的方法是,可以使用for循环遍历数组中的每个元素,然后分别调用getElementById方法来获取对应的元素节点。例如:
var ids = ["id1", "id2", "id3"];
var elements = [];
for (var i = 0; i < ids.length; i++) {
var element = document.getElementById(ids[i]);
elements.push(element);
}
console.log(elements);
上述代码中,我们定义了一个数组ids,其中包含了要获取的元素节点的id值。然后我们创建了一个空数组elements,用于存储获取到的元素节点。接下来,通过for循环遍历ids数组,每次循环中使用getElementById方法获取对应id的元素节点,并将其添加到elements数组中。最后,我们通过console.log输出elements数组,即可查看获取到的元素节点。
需要注意的是,使用getElementById方法获取元素节点时,要确保对应的元素已经加载到DOM树中,否则会返回"null"。可以将脚本放在页面底部,或者在页面加载完成后再执行相关操作,以确保元素已经存在于DOM树中。
推荐的腾讯云相关产品:腾讯云云服务器(CVM),产品介绍链接地址:https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云