父节点有多少子节点?

时间:2015-01-25 07:58:39

标签: javascript html xml

<form id="frm1">
    <input type="text"/>
    <input type="text"/>
</form>
<input type="submit" onclick="myFunction();" value="Göster"/>
<p id="demo"></p>
<script>
    function myFunction(){
        var x = document.getElementById("frm1");

        document.write(x.length); // 2 (!) Why?
        document.write(x.childNodes.length); // 5 (!) Why?
    }
</script>
  1. x.childNodes [0] ==首先在表单中输入标签,不是吗?
  2. x.childNodes [1] ==表单中的第二个输入标记,不是吗?
  3. 但第二个document.write语句打印数字5.好的,两个孩子在上面。那么,接下来的三个要素是什么?根据w3schools,x.length语句表示frm1的子号。但我从w3schools的XML课程中再次知道x.length并不意味着孩子的数量是&#34; frm1&#34;或&#34;任何事情&#34;。即:

    <!DOCTYPE html>
    <html>
        <body>
            <script>
            // --------------------- XML DOCUMENT PARSER -------------------------------
            if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
            }
            else{// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
    
            xmlhttp.open("GET","books.xml",false);
            xmlhttp.send();
            xmlDoc=xmlhttp.responseXML; 
            // --------------------------------------------------------------------------
    
    
            x=xmlDoc.getElementById("first"); // first is an id of XML tag
    
    
            document.write(x.length + "<br>"); // Output: Undefined
            document.write(x.childNodes.length); // Output : 9
    
            </script>
        </body>
    </html>
    

    以下是xml代码。也就是说,您可以检查xml文件以了解下面的代码。

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
        <book id="first" category="COOKING">
            <title lang="en">Everyday Italian</title>
            <author>Giada De Laurentiis</author>
            <year>2005</year>
            <price>30.00</price>
        </book>
    </bookstore>
    

    如果您尝试在浏览器中运行倒数第二个代码片段,则上面倒数第二个代码片段中的x.length输出&#34; undefined&#34;。是否有意义?我想是的。然后,上面倒数第二个代码片段中的x.childNodes.length输出数字9.这就是为什么book元素中有4个元素节点和4个文本节点加上1个属性节点。总计是9.为什么以下没有这种情况?

    <form id="frm1">
        <input type="text"/>
        <input type="text"/>
    </form>
    <input type="submit" onclick="myFunction();" value="Göster"/>
    <p id="demo"></p>
    <script>
        function myFunction(){
            var x = document.getElementById("frm1");
    
            document.write(x.length); // 2 ? It must be undefined(!)
            document.write(x.childNodes.length); // 5 ? It must be 2(!)
        }
    </script>
    

    document.write(x.length)涉及打印undefined而不是2,不是吗? document.write(x.childNodes.length)涉及打印2而不是5,不是吗?

    你能解释一下上面的这两个问题吗?

0 个答案:

没有答案