JS中遍历子元素的方法是什么,使用有什么要注意的
Admin 2022-07-09 群英技术资讯 1195 次浏览
这篇文章给大家介绍了“JS中遍历子元素的方法是什么,使用有什么要注意的”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。后来W3C通过Element Traversal规定定义了一组新的属性来进行遍历,就不用判断了,非常方便。
遍历子元素通常是通过childNodes属性进行遍历,但是这个属性会包含空白节点,如果只是要遍历Element元素就特别不方便。
请看如下代码示例:
<div class="article">
<p>段落一</p>
<p>段落二</p>
<p>段落三</p>
</div>
<script type="text/javascript">
let childList = document.querySelector(".article").childNodes;
console.log(childList);
// 控制台输出:
// NodeList(7) 1
</script>
控制台查看效果:
遍历子元素空白节点:

获取到的子元素包含了空白的text节点,这些节点就是一些换行、缩进、空格等。
如果要遍历 childList 中p元素,实务中也经常是这样,
那么需要判断子元素为Element类型:
let childList = document.querySelector(".article").childNodes;
// 遍历子元素
childList.forEach((item, index) => {
if (item.nodeType == 1) { // 判断是Element类型
console.log(item);
}
});
// 控制台输出:
// 3个p元素
Element Traversal为DOM元素添加了5个属性:
childElementCount 子元素的个数(nodeType=1)。firstElementChilde 指向第一个Element类型的子元素。lastElementChilde 指向最后一个Element类型的子元素。previousElementSibling 指向上一个同胞Element类型的元素。nextElementSibling 指向下一个同胞Element类型的元素。通过这些新属性,遍历Element元素起来就方便多了,
还是以上面为例:
// 获取第一个元素
let currentElement = document.querySelector(".article").firstElementChild;
// 遍历子元素
while (currentElement) {
console.log(currentElement);
// 获取下一个元素
currentElement = currentElement.nextElementSibling;
}
这样处理起来就更加简洁了。
目前IE9及以上版本,以及所有现代浏览器都支持这些属性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
JS数组中filter方法的使用是什么?filter()创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
这篇文章主要给大家介绍了关于typescript在node.js下使用别名(paths)无效问题的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这篇文章主要为大家详细介绍了原生JavaScript实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
目录前言动画的本质动画的实现动画的推导小结前言到目前为止我们的 fabric.js 雏形已经有了,麻雀虽小五脏俱全,我们不仅能够在画布上自由的添加物体,同时还实现了点选和框选,并且能够对它们做一些变换,不过只有变换这个操作还不够灵活,要是能够让物体动起来就好了,于是就引入了这个章节的主题:动画,以及动画最核心的一个问题
在React中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。React 中的条件渲染和JavaScript中的一致,使用JavaScript操作符if或条件运算符来创建表示当前状态的元素,然后让React根据它们来更新UI
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008