0

以下代码对我来说工作正常 IE 但不能在 Chrome 中工作。我想通过 java 脚本在 HTML 中打开同一页面中的链接

<SCRIPT LANGUAGE="javascript">
function clickHandler()
{
    var xid= document.getElementsByTagName("span");
    var xsp= xid[0].id;   

    if(xsp.charAt(0)=="M")    {
        var oC=document.getElementById("C"+xsp.substr(1));
        if(oC.style.display=="none")
            oC.style.display="";
        else
            oC.style.display="none";
    } 
}
</SCRIPT>

html代码如下

   <html>
       <BODY onClick = "clickHandler();">
           <a href="javascript:void(0)">
                <u><b><span id=M26>2011-2012</span></b></u>
           </a>   

            <div id=c26 STYLE="display:none">
                <a href="javascript:void(0)">
                   <u><b><span id=M27>2012-2013</span></b></u>
                </a>   
            </div>

            <div id=c27 STYLE="display:none"> 
            </div>
        </body>
    </html>
4

1 回答 1

1

您在函数内部使用大写 C,但 ID 以小写 c 开头

var oC=document.getElementById("C"+xsp.substr(1));

必须

var oC=document.getElementById("c"+xsp.substr(1));

请求的修改(您必须从 body-element 中删除 onclick)

<script>
document.onclick=function(e){

  var _this=(window.event)//reference to the clicked element
              ? event.srcElement//IE
              : e.target;//others

  if(_this.id.match(/^M(\d+)$/)){//extract the number
    try{
      var oC=document.getElementById("c"+RegExp.$1);//target-element
          oC.style.display=(oC.style.display=='none')//set the display
                            ?''
                            :'none'
    }catch(e){}
  }
}
</script>
于 2012-11-30T11:24:32.600 回答