第一个JS,兼容火狐和谷|歌等浏览器,不兼容IE6.0。
<html>
<head>
<script type='text/javascript'>
function showhidediv(e){
var nameArr=document.getElementsByName("msg_1");
var ageArr=document.getElementsByName("msg_2");
for(var i=0;i<ageArr.length;i++){
if (e == 'name') {
if (nameArr[i].style.display=='none') {
ageArr[i].style.display='none';
nameArr[i].style.display='block';
}
} else {
if (ageArr[i].style.display=='none') {
nameArr[i].style.display='none';
ageArr[i].style.display='block';
}
}
}
document.getElementById('d1').checked = (e=='name');
document.getElementById('d2').checked = (e!='name');
}
</script>
</head>
<body>
<input id="d1" type="radio" value="1" onClick='showhidediv("name")' />
<input id="d2" type="radio" value="2" onClick='showhidediv("age")' />
<div name="msg_1">111111</div>
<div name="msg_2" 歌等。
<script type='text/javascript'>
function showhidediv(e){
var arry = document.getElementsByTagName("div");
for(var i=0;i<arry.length;i++){
if("name"==e){
if(arry[i].name=='msg_1'){
arry[i].style.display="block";
}else if(arry[i].name=='msg_2'){
arry[i].style.display="none";
}
}else{
if(arry[i].name=='msg_1'){
arry[i].style.display="none";
}else if(arry[i].name=='msg_2'){
arry[i].style.display="block";
}
}
}
document.getElementById('d1').checked = (e=='name');
document.getElementById('d2').checked = (e!='name');
}
</script>
JS控制多个div显示与隐藏的兼容问题,2个JS,第二个不支持谷歌和火狐,第一个不支持IE6.0
答案:4 悬赏:20
解决时间 2021-02-17 07:31
- 提问者网友:依靠
- 2021-02-16 22:10
最佳答案
- 二级知识专家网友:山鬼偶尔也合群
- 2021-02-16 23:17
用第二个js。
把所有
arry[i].name
改成
arry[i].getAttribute('name')
因为div默认没有name属性,所以这里div上的name是自定义的属性了。
所以要用getAttribute获取name属性。
把所有
arry[i].name
改成
arry[i].getAttribute('name')
因为div默认没有name属性,所以这里div上的name是自定义的属性了。
所以要用getAttribute获取name属性。
全部回答
- 1楼网友:万千宠爱
- 2021-02-17 00:28
为什么不用JQuery呢?
这个框架帮你自动适配不同浏览器了
- 2楼网友:星痕之殇
- 2021-02-17 00:11
tbody默认display的值不是block
建议也用class来控制
需要隐藏的时候给tbody加个hide样式
需要显示的时候去掉tbody的hide样式
.hide { display: none; }
- 3楼网友:猖狂的痴情人
- 2021-02-16 23:44
尊敬的用户,您好!很高兴为您答疑。
第二个JS中,因为var arry = document.getElementsByTagName("div");所赋予arry[i]的对象,并不原生包含name属性,所以您需要使用arry[i].getAttribute("name")进行指定。解决此类问题,您可以使用遍历循环打印的方式罗列出当前对象的所有属性后再进行判断处理。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |