javascript - 如何在一个元素下取子元素.而不取到子元素内元素.
天蓬老师
天蓬老师 2017-04-10 15:00:37
[JavaScript讨论组]

例如:

<p id="p1">
    <p>
        <p>
        </p>
    </p>
    <p>
        <p>
        </p>
    </p>
</p>

在这种情况下我只想取到#p1下的子元素的p,不包括这些子p的更子级的p,该如何做到.

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
PHP中文网

document.getElementById('p1').children

天蓬老师

可以用jQuery么? $('#p1>p')

PHP中文网

$('#p1>p')获取直接的子元素 $('#p1 p')获取所有后代元素

大家讲道理
javascript    var children = document.getElementById('p1').childNodes,
        output   = []

    for (var i = 0, ii = children.length; i < ii; i++) {
        output.push(children[i].nodeName)
    }

    console.log(output)
黄舟
document.querySelectorAll("#p1>p")
大家讲道理

4楼的方法兼容,但是需要加上nodeType的判断,不然文本结点(TextNode)也会被查出来,如:

var $d = document.getElementById('p1'),
    $childs = $d.childNodes,
    results = [];

for(var i = 0,len = $childs.length; i < len; i++){
    if($childs[i].nodeType === 1){
        results.push($childs[i]);
    }
}

console.log(results);

当然也可以使用nextSibling进行查找 :)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号