JavaScript中DOM节点的查找(遍历)

简介: JavaScript中DOM节点的查找(遍历)这篇文章讲一下DOM节点的查找,即DOM节点的遍历。说道遍历大家应该不陌生了,在js中,通过DOM节点的遍历,我么可以通过任意一个元素找到另外的任意一个元素。前期把这个学到位,到了后期开始学习jQuery时会感觉方便很多。整个DOM中,节点与节点之间的关系只有两种,兄弟(同胞)关系和父子关系。遍历节点用到的属性也主要是这个两类。HTML代码: <div class="wrap" style="position:relative"> <div class="box"> 盒子01

JavaScript中DOM节点的查找(遍历)




这篇文章讲一下DOM节点的查找,即DOM节点的遍历。说道遍历大家应该不陌生了,在js中,通过DOM节点的遍历,我么可以通过任意一个元素找到另外的任意一个元素。前期把这个学到位,到了后期开始学习jQuery时会感觉方便很多。


整个DOM中,节点与节点之间的关系只有两种,兄弟(同胞)关系和父子关系。遍历节点用到的属性也主要是这个两类。


HTML代码:

<divclass="wrap"style="position:relative"><divclass="box">            盒子01
<p>这是一个段落</p></div><divclass="box box2">盒子02</div><divclass="box box3">盒子03</div><ulclass="list"><li>列表01</li><li>列表02</li><li>列表03</li><li>列表04</li></ul></div>

 

1.父子关系遍历


 

    var oWrap=document.getElementsByClassName("wrap")[0];
    var oBox=document.getElementsByClassName("box")[0];
    // children   返回子(元素)节点,不包含空节点
    console.log(oWrap.children);//
    // childNodes 返回子节点,包含空节点
    console.log(oWrap.childNodes);//text  空文本
    // firstElementChild  第一个子(元素)节点,不包含空节点
    console.log(oWrap.firstElementChild.firstChild);
    // firstChild   第一个子节点,包含空节点
    console.log(oWrap.firstChild);
    // lastElementChild 最后一个子(元素)节点,不包含空节点
    console.log(oWrap.lastElementChild);
    // lastChild  最后一个子节点,包含空节点
    console.log(oWrap.lastChild);//#text
    // parentNode 父节点
    console.log(oBox.parentNode.parentNode);
    // offsetParent 第一个有定位属性的父节点,如果没有,则返回body
    console.log(oBox.offsetParent);



2.兄弟(同胞)关系


 

    // nextElementSibling     下一个兄弟(元素)节点,不包含空节点
    console.log(oBox.nextElementSibling.nextElementSibling);
    // nextSibling  下一个兄弟节点,包含空节点
    console.log(oBox.firstChild.nextSibling);
    console.log(oBox.nextSibling);
    // previousElementSibling 前一个兄弟节点,不包含空节点
    console.log(oBox.previousElementSibling);
    // previousSibling  前一个兄弟节点,包含空节点
    console.log(oBox.previousSibling);

视频讲解链接:
https://www.bilibili.com/video/BV12t4y1C7DH/

相关文章
|
28天前
|
JavaScript 前端开发
JavaScript操作DOM元素
JavaScript操作DOM元素
11 1
|
1月前
|
JavaScript 前端开发
如何使用 JavaScript 操作 DOM?
如何使用 JavaScript 操作 DOM?
13 0
|
1月前
|
前端开发 JavaScript 区块链
连接区块链节点的 JavaScript 库 web3.js
连接区块链节点的 JavaScript 库 web3.js
27 2
|
1月前
|
JavaScript 前端开发
JavaScript如何遍历表单元素?
JavaScript如何遍历表单元素?
|
10天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
26天前
|
JavaScript 前端开发 算法
js开发:请解释什么是虚拟DOM(virtual DOM),以及它在React中的应用。
虚拟DOM是React等前端框架的关键技术,它以轻量级JavaScript对象树形式抽象表示实际DOM。当状态改变,React不直接操作DOM,而是先构建新虚拟DOM树。通过高效diff算法比较新旧树,找到最小变更集,仅更新必要部分,提高DOM操作效率,降低性能损耗。虚拟DOM的抽象特性还支持跨平台应用,如React Native。总之,虚拟DOM优化了状态变化时的DOM更新,提升性能和用户体验。
21 0
|
3天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
9 0
|
3天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
9 4
|
15天前
|
JavaScript
理解DOM树的加载过程(js的问题)
理解DOM树的加载过程(js的问题)
|
16天前
|
JavaScript 前端开发 开发者
DOM节点类型
DOM节点类型