样式我去掉了,只剩display。 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <TITLE>测试</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> </style> <script> function $(id){return (typeof id == "string" ? document.getElementById(id) : id);} function $N(name,root){return root ? $(root).getElementsByName(name) : document.getElementsByName(name);} function $TN(name,root){return root ? $(root).getElementsByTagName(name) : document.getElementsByTagName(name);} function setTab(m,n){ var tli=$TN("li","tab"+m); var mli=$N("contab","content"+m); for(i=0;i<tli.length;i++){ tli.className=i==n?"tabcurrent":""; mli.className=i==n?"tabcontentcur":"tabcontent"; mli.style.display=i==n?"block":"none"; } } </script> </head> <body> <ul id="tab0"> <li onclick="setTab(0,0)">11111</li> <li onclick="setTab(0,1)">22222</li> </ul> <div id="content0"> <div name="contab">1111111111</div> <div name="contab" style="display:none;">2222222222</div> </div> </body> </html>
问题出在这里。 getElementsByName 的定义是: 所以,只能针对 HTMLDocument来使用,也就是必须是 document.getElementsByName(name) ,同时强调为 HTML 文档,XML 中是否有效,还没有测试。 和 getElementsByTagName 不同, 都有效,即可以应用于文档,也可以应用于元素。