1

私はJSに不慣れで、いくつかの基本的なことを学ぼうとしています。私はこれに何時間も費やしましたが、それほど難しいことではないと思います。何らかの理由で、私のコンピューターは、childNodeを要求していることを認識していません。

これは、私が持っている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配列を返す場合は、最初の要素を取得する必要があります(bodyタグではないため、名前を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;
于 2013-01-08T18:49:50.097 に答える