• 关于 getElementsByTagName


        .getElementById()不用多说,因为Id在一个页面内只会出现一次,所以这个返回值是唯一的。可是,.getElemensByTagName()就不一样了,因为标签名很可能会相同,所以返回的是一个数组。那么这个数组是如何取的呢,会否递归呢?

       做一个实验。如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    <script type="text/javascript">
    window.onload=function()
    {
       var test = document.getElementById("test");
       var adang = test.getElementsByTagName("div");
       for(var i=0,n=adang.length;i<n;++i)
       {
        alert(adang[i].className);
       }
    }
    </script>
    <body>
    <div id="test">
    <div class="a1">
       <div class="a2"><div class="a3"></div></div>
       <div class="a4"></div>
    </div>
    <div class="a5"></div>
    </div>
    </body>
    </html>

    如果.getElementsByTagName不能递归的话,那么就只会返回同在#test的标签根目录下的.a1和.a5了,如果能够递归的话,那么结果就是五个元素了。如果是后者,元素又是如何排列的呢?是先从儿子push起,然后再放孙子,孙子的儿子。。。还是把大儿子一家全push完,再push二儿子一家,三儿子一家呢?

    我们运行一下程序就知道了,弹出的顺利是a1,a2,a3,a4,a5。也就是说,.getElementsByTagName方法会迭代,而且是大儿子一家,二儿子一家, 三儿子一家,一家一家顺序push完的。IE和FF下一致,都是如此。

  • 相关阅读:
    Sum of Medians
    MINSUB
    Girls Love 233
    How Many Answers Are Wrong
    Sorting It All Out
    Cube Stacking
    Boolean Expressions
    表达式求值
    #1301 : 筑地市场
    用seaborn对数据可视化
  • 原文地址:https://www.cnblogs.com/cly84920/p/4427127.html
Copyright © 2020-2023  润新知