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

我用多个div层id都是一样的,然后用css把display设为none.然后用onclick的方式通过js动态显示.问题来了,用onclick的时候只能把第一个div显... 我用多个div层id都是一样的,然后用css把display设为none. 然后用onclick的方式通过js动态显示. 问题来了,用onclick的时候只能把第一个div显示后门相同id的都显示不了,这是为什么? 有什么办法让所有相同id的div同时显示出来吗? 展开
 我来答
百度网友211658b42
2009-02-17 · TA获得超过3383个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:600万
展开全部
不可以。因为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",看你想怎么显示了
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xep0825
2009-02-17 · TA获得超过623个赞
知道小有建树答主
回答量:379
采纳率:100%
帮助的人:512万
展开全部
var divs = document.all.divsid;
for(var i=0; i<divs.length; i++)
{
divs[i].style.display = '';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式