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控制部分 展开
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控制部分 展开
8个回答
展开全部
你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>
我看的意思是下半部分成三个部分,如果是这个意思的话,那就把他们用三个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>
追问
师兄谢谢你了,您的指点有独到的地方,给我很大的帮助,在这里感谢您的帮助,谢谢你了。
展开全部
getElementById()函数只能获取指定id的一个元素,也就是说如果你有多个有着id的元素元素,它只会返回第一个。
你这儿需要用getElementsByName()函数,并且用name来标志元素而不宜用id,如此调用你便能得到指定name的元素的数组,遍历一下就能满足你的需求。
你这儿需要用getElementsByName()函数,并且用name来标志元素而不宜用id,如此调用你便能得到指定name的元素的数组,遍历一下就能满足你的需求。
追问
师兄谢谢了,问题已经解决,感谢您给予的帮助,谢谢了,师兄。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所有的回复的那个层同一个name,不同的ID可根据你那条心情的ID加点辨析,所有点击回复的事件传回那个层的ID,事件里把所有这个name的层全隐藏,再把传过来的那个ID的层显示,就是点那个就开那个关闭其他的,这个用户体验我觉得更好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
觉得你这样每个留言都放一个表单有点浪费...,虽然隐藏了,但是HTML还是在那里,你完全可以用一个隐藏了的表单,当点击回复的时候把那个表单加到当前DIV的最后面并显示出来..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个页面中id的值是唯一的,你可用class来监控它。$($('.className').attr()==msg_1).hide();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询