• 1
  • 新人请关照

元素.getElementsByTagName可以获取指定id下的div标签吗

题中的“元素”是之前之前通过var abc=document.getElementById()方法获取的一个div,
再使用var comn=abc.getElementsByTagName("div")方法获取abc底下的div的集合却报错是怎么回事?
难道不能用getElementsByTagName()方法获取一个div下的所有div的集合吗?

阅读 1.8k
评论
    1 个回答
    • 2
    • 新人请关照

    建议附上代码,我正好遇上这种情况,于是试了一下,是可以的

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>getElementsByTagName</title>
    </head>
    <body>
        <div class="box">
            <ul>
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ul>
            <div id="content">
                <ul class="con">
                    <li>11</li>
                    <li>22</li>
                    <li id="li3">33</li>
                </ul>
                <div></div>
            </div>
        </div>
    </body>
    <script type="text/javascript">
        var content = document.getElementById('content');
        var lis = document.getElementsByTagName('li');
        var box = document.getElementsByClassName('box');
        console.log(content);
        console.log(lis);
        console.log(box);
        var lis2 = box[0].getElementsByTagName('li');
        console.log("类.标签",lis2);//类.标签HTMLCollection(8) [li, li, li, li, li, li, li, li#li3, li3: li#li3]
        var lis3 = content.getElementsByTagName('li');
        console.log("id.标签",lis3);//id.标签HTMLCollection(3) [li, li, li#li3, li3: li#li3]
        var divs = content.getElementsByTagName('div');
        console.log("id.标签",divs);//id.标签HTMLCollection [div]
        var con = content.getElementsByClassName('con');
        console.log("id.类",con);//id.标签HTMLCollection [ul.con]
        var con2 = box[0].getElementsByClassName('con');
        console.log("类.类",con2);//类.类HTMLCollection [ul.con]
        var con3 = content.getElementById('li3');
        console.log("id.id",con3);//报错
        var content2 = box[0].getElementById('content');
        console.log("类.id",content2);//报错
    </script>
    </html>

    补充:忽然发现有时候会使用“id.标签”会报错,可能是变量名的原因,可不用变量名,直接复合可使用(如document.getElementById().documentsByTagName())或者更换变量名

      撰写回答

      登录后参与交流、获取后续更新提醒