JS控制多个div显示与隐藏的问题。

functionshowhidediv(id){varage=document.getElementById("msg_2");varname=document.getE... function showhidediv(id){
var age=document.getElementById("msg_2");
var name=document.getElementById("msg_1");
if (id == 'name') {
if (name.style.display=='none') {
age.style.display='none';
name.style.display='block';
}
} else {
if (age.style.display=='none') {
name.style.display='none';
age.style.display='block';
}
}
}

<input name="d2" type="radio" value="1" onClick='showhidediv("name")' />
<input name="d2" type="radio" value="2" onClick='showhidediv("age")' />

<div id="msg_1">1</div>

<div id="msg_2" style="display:none;">2</div>

以上的情况测试没问题,当出现多个div就不行了,如下:

<div id="msg_1">111111</div>
<div id="msg_2" style="display:none;">222222</div>

<div id="msg_1">333333</div>
<div id="msg_2" style="display:none;">444444</div>

<div id="msg_1">555555</div>
<div id="msg_2" style="display:none;">666666</div>

请高手们帮忙看看,只有第一组管用,下面几个都不用呢
请帮忙改改js控制部分
展开
 我来答
djchallenge
推荐于2018-05-06 · 超过25用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:64.3万
展开全部
你id都重复了当然不好用,
我看的意思是下半部分成三个部分,如果是这个意思的话,那就把他们用三个div分别包起来。如下:
<div id="msg_1">
<div>111111</div>
<div style="display:none;">222222</div>
</div>
<div id="msg_2">
<div>333333</div>
<div style="display:none;">444444</div>
</div>
<div id="msg_3">
<div>555555</div>
<div style="display:none;">666666</div>
</div>
追问
师兄谢谢你了,您的指点有独到的地方,给我很大的帮助,在这里感谢您的帮助,谢谢你了。
OrphousV
2013-04-22 · TA获得超过176个赞
知道小有建树答主
回答量:210
采纳率:100%
帮助的人:195万
展开全部
getElementById()函数只能获取指定id的一个元素,也就是说如果你有多个有着id的元素元素,它只会返回第一个。
你这儿需要用getElementsByName()函数,并且用name来标志元素而不宜用id,如此调用你便能得到指定name的元素的数组,遍历一下就能满足你的需求。
追问
师兄谢谢了,问题已经解决,感谢您给予的帮助,谢谢了,师兄。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
訾绢遇良骥
2019-05-25 · TA获得超过3681个赞
知道大有可为答主
回答量:3116
采纳率:31%
帮助的人:426万
展开全部
所有的回复的那个层同一个name,不同的ID可根据你那条心情的ID加点辨析,所有点击回复的事件传回那个层的ID,事件里把所有这个name的层全隐藏,再把传过来的那个ID的层显示,就是点那个就开那个关闭其他的,这个用户体验我觉得更好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翁婕旷和怡
2019-06-20 · TA获得超过3576个赞
知道大有可为答主
回答量:3141
采纳率:33%
帮助的人:431万
展开全部
觉得你这样每个留言都放一个表单有点浪费...,虽然隐藏了,但是HTML还是在那里,你完全可以用一个隐藏了的表单,当点击回复的时候把那个表单加到当前DIV的最后面并显示出来..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逛无语ing
2013-04-22 · TA获得超过175个赞
知道答主
回答量:77
采纳率:0%
帮助的人:47.6万
展开全部
一个页面中id的值是唯一的,你可用class来监控它。$($('.className').attr()==msg_1).hide();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式