2010-05-03 63 views
0

任何人都可以用Javascript的問題幫我一下嗎?爲什麼下面的代碼只顯示其中包含單詞「null」的消息框?我認爲他們也不夠。爲什麼Javascript不能識別HTML類屬性?

<html> 
<head> 
    <script type="text/javascript"> 
     function showElementClasses(node) { 
      var els = node.getElementsByTagName("*"); 
      for(var i=0,j=els.length; i<j; i++) 
       alert(els[i].getAttribute("class")); 
       alert("Class: " + els[i].className); 
     } 

     showElementClasses(document); 
    </script> 
</head> 
<body class="bla"> 
    <div class="myclass" style="width: 500; height: 400" id="map"></div> 
</body> 
</html> 
+1

是*一個有效的通配符?另外,你的for循環需要更多的大括號。 – Nitrodist 2010-05-03 22:45:37

+1

*是正確的(http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#method-getElementsByTagName),大括號不是。 – 2010-05-03 22:46:38

回答

2

這只是正常:

<html> 
<head> 
    <script type="text/javascript"> 
     function showElementClasses(node) 
     { 

      alert("hello, world.");   
      var els = node.getElementsByTagName("*"); 
      for(var i=0,j=els.length; i<j; i++) 
      { 
       alert(els[i].getAttribute("class")); 
       alert("Class: " + els[i].className); 
      } 
     } 


    </script> 
</head> 
<body class="bla" onload="showElementClasses(document)"> 
    <div class="myclass" style="width: 500; height: 400" id="map" ></div> 
</body> 
</html> 
+0

非常感謝!爲什麼只有在調用被放入onload屬性時才起作用?在甚至創建之前

2

你也for(var i=0,j=els.length; i<j; i++)alert("Class: " + els[i].className);後忘記括號。

+0

似乎我最近一直在使用Python太多:)謝謝! – 2010-05-04 02:52:12

1

唯一的問題是,你的alert("Class: " + els[i].className);聲明不被你的for循環中運行。你需要糾正你的大括號。

相關問題