js同时显示多个同id的div层?

来源:百度知道 编辑:UC知道 时间:2024/06/18 22:50:17
我用多个div层id都是一样的,然后用css把display设为none. 然后用onclick的方式通过js动态显示. 问题来了,用onclick的时候只能把第一个div显示后门相同id的都显示不了,这是为什么? 有什么办法让所有相同id的div同时显示出来吗?

不可以。因为id是一个元素的唯一标识,按照编程规范,应当保证id在当前DOM中是唯一的,不可以存在多个相同id的元素。虽然有多个相同的id并不会导致js报错,但是当用document.getElementById()等等方法通过id去获得元素时,只能获得第一个出现的该id元素。LZ这样做是不规范的。
id和name不同,name可以重复,所以document.getElementsByName()获得的是一个数组,document.getElementById()获得的是一个元素。仔细看,函数名当中的element一个是复数一个是单数。你可以把那些div的name设置成一样,然后document.getElementsByName()得到你的div数组,遍历这个数组,把每个div的style.display设为空

var div_array = document.getElementsByName("你的div的name");
for(i=0;i<div_array.length;i++){
div_array[i].style.display = ""; //或者赋值为"block"、"inline",看你想怎么显示了
}

var divs = document.all.divsid;
for(var i=0; i<divs.length; i++)
{
divs[i].style.display = '';
}