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>

解决方案 »

  1.   

    <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>写错别字了
      

  2.   

    IE不支持“document.getElementsByName”,变通方法是添加ID属性。
    <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了。
      

  3.   

    IE不支持“document.getElementsByName”,变通方法是添加ID属性。
    ==============================================================================================
    貌似不是,而是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>
      

  4.   

    并非IE不支持“document.getElementsByName”。
    根本问题是IE并非对所有HTML标签都支持其具有NAME属性。
    就是说,在IE里,你对P设置NAME属性本身就是不允许的,但是你可以对INPUT,A链接等设置。
    比如楼主把上面的程序里P改成A链接的话,就是可以的。
      

  5.   

    学习。另:
    如果想要兼容性,最好使用js库。
    如jQuery,则可以用下面代码替换:
    var channelset = $("p[name$='a']");