Firefox中测试正常。<html>
<head>
<title>Test</title>
<script language="javascript">
function func() {
var channelset = document.getElementsByName("a");
for (i = 0; i < channelset.length; i++) {
if (channelset[i].style.display == 'none') {
channelset[i].style.display = 'block';
} else {
channelset[i].style.display = 'none';
}
}
}
</script>
</head>
<body>
<p onClick="func()">Menu Bar</p>
<p name="a" style="display:none">item1</p>
<p name="a" style="display:none">item2</p>
</body>
</html>
<head>
<title>Test</title>
<script language="javascript">
function func() {
var channelset = document.getElementsByName("a");
for (i = 0; i < channelset.length; i++) {
if (channelset[i].style.display == 'none') {
channelset[i].style.display = 'block';
} else {
channelset[i].style.display = 'none';
}
}
}
</script>
</head>
<body>
<p onClick="func()">Menu Bar</p>
<p name="a" style="display:none">item1</p>
<p name="a" style="display:none">item2</p>
</body>
</html>
<head>
<title>Test</title>
<script language="javascript">
function func() {
var channelset=document.getElementsByTagName("p");
for (i = 0; i < channelset.length; i++) {
if(channelset[i].style.display == 'none') {
channelset[i].style.display = 'block';
} else {
channelset[i].style.display = 'none';
}
}
}
</script>
</head>
<body>
<p onClick="func()">Menu Bar</p>
<p name="a" style="display:none">item1</p>
<p name="a" style="display:none">item2</p>
</body>
</html>写错别字了
<html>
<head>
<title>Test</title>
<script language="javascript">
function func() {
var channelset = document.getElementsByName("a");
for (i = 0; i < channelset.length; i++) {
if (channelset[i].style.display == 'none') {
channelset[i].style.display = 'block';
} else {
channelset[i].style.display = 'none';
}
}
}
</script>
</head>
<body>
<p onClick="func()">Menu Bar</p>
<p id="a" name="a" style="display:none">item1</p>
<p id="a" name="a" style="display:none">item2</p>
</body>
</html>这样就兼容OK了。
==============================================================================================
貌似不是,而是ie下除了input标签,其它的标签上了name属性,都不能被document.getElementsByName读到。<html>
<head>
<title>Test</title>
<script language="javascript">
function func() {
var channelset=document.getElementsByTagName("p");
var n;
for (i = 0; i < channelset.length; i++) {
var n = channelset[i].getAttribute('name') || channelset[i].name ;
if(n!='a') continue;
if(channelset[i].style.display == 'none') {
channelset[i].style.display = 'block';
} else {
channelset[i].style.display = 'none';
}
}
}
</script>
</head>
<body>
<p onClick="func()">Menu Bar</p>
<p name="a" style="display:none">item1</p>
<p name="a" style="display:none">item2</p>
</body>
</html>
根本问题是IE并非对所有HTML标签都支持其具有NAME属性。
就是说,在IE里,你对P设置NAME属性本身就是不允许的,但是你可以对INPUT,A链接等设置。
比如楼主把上面的程序里P改成A链接的话,就是可以的。
如果想要兼容性,最好使用js库。
如jQuery,则可以用下面代码替换:
var channelset = $("p[name$='a']");