2013-01-08 63 views
1

我是新来的JS,并试图学习一些基本的东西。我已经花了几个小时,但我认为它不应该那么困难。出于某种原因,我的电脑没有意识到我在询问childNodes。为什么childNodes不能在这个脚本中工作?

这是一个简单的脚本,只是试图计算我有的锂标签的数量。我知道还有其他方法可以做到这一点,但我正在尝试学习这种方式。

<title>To-Do List</title> 
<script> 
    function findComments(){ 
     var bodyTag = document.getElementsByTagName("ol"); 
     var count = 0; 
     for(var i=0;i<bodyTag.childNodes.length;i++){ 
      if(bodyTag.childNodes[i].nodeType == 1){ 
       count++; 
      } 
     } 
     alert(count);  
    } 
    window.onload = findComments; 
</script> 

<!--List is declared--> 
<ol id="toDoList"> 
    <!--List Items are created--> 
    <li>Mow the lawn</li> 
    <li>Clean the windows</li> 
    <li>Answer your email</li> 
</ol> 
<!--Main paragraph--> 
<p id="toDoNotes">Make sure all these are completed by 8pm so you can watch the game on TV!</p> 
    <script> 
</script> 

+0

你的变量指向'ol'被称为'bodyTag'? –

回答

1

getElementsByTagName返回一个数组,你需要找回它的第一个元素(从bodyTag将名称更改为olTag或东西,因为它不是身体标记和困惑试图理解你的代码)

function findComments(){ 
    var ol = document.getElementsByTagName("ol")[0]; 
    var count = 0; 
    for(var i=0;i<ol.childNodes.length;i++){ 
     if(ol.childNodes[i].nodeType == 1){ 
      count++; 
     } 
    } 
    alert(count);  
} 

而这里的你真的应该现在就做什么,你知道什么是你的代码错误

var ol = document.getElementsByTagName("ol")[0]; 
var liCount = ol.getElementsByTagName("li").length; 
+0

太棒了!非常感谢。完美工作。 – Philip7899

相关问题