1

我是 JS 的新手,正在尝试学习一些基本的东西。我在这上面花了几个小时,但我认为这不应该那么困难。出于某种原因,我的计算机无法识别我正在请求 childNodes。

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

<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>

4

1 回答 1

1

getElementsByTagName返回一个数组,您需要检索它的第一个元素(并将名称从 bodyTag 更改为 olTag 或其他内容,因为它不是 body 标签,并且让我试图理解您的代码感到困惑)

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;
于 2013-01-08T18:49:50.097 回答