js同时显示多个同id的div层?
我用多个div层id都是一样的,然后用css把display设为none.然后用onclick的方式通过js动态显示.问题来了,用onclick的时候只能把第一个div显...
我用多个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",看你想怎么显示了
}
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",看你想怎么显示了
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询