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

秋绿_PQR
  • 1
新手上路,请多包涵

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

评论
阅读 2.3k
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())或者更换变量名

撰写回答

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

宣传栏