DOM遍历 复习


参考文献:https://zh.javascript.info/dom-navigation

在这里插入图片描述

DOM 遍历

特殊节点

  • <html> = document.documentElement
  • <body> = document.body
    当脚本在head中,获取不到document.body
  • <head> = document.head

兄弟节点和父节点

兄弟节点 sibling :具有相同父节点的节点

  • 下一个兄弟节点 nextSibling , previousSibling
  • 访问父亲节点:parentNode

子节点

  • childNodes 子节点集合,而不是数组。elem.hasChildNodes() 判断 elem是否有子节点。DOM 集合是只读的,不可以通过 childNodes[i] = … 的操作替换
  • firstChild
  • lastChild

纯元素导航

区别:element是元素,node是节点。

alert( document.documentElement.parentNode ); // document
alert( document.documentElement.parentElement ); // null
// 因为根节点 document.documentElement(<html>)的父节点是 document。但 document 不是一个元素节点,
// 所以 parentNode 返回了 document,但 parentElement 返回的是 null

词中间加了 Element:

  • children — 仅那些作为元素节点的子代的节点。
  • firstElementChild,lastElementChild — 第一个和最后一个子元素。
  • previousElementSibling,nextElementSibling — 兄弟元素。
  • parentElement — 父元素。
    #pic_center =45%x45%

表格

<table> 元素支持 (除了上面给出的) 以下这些属性:

  • table.rows — <tr> 元素的集合。
  • table.caption/tHead/tFoot — 引用元素 <caption>,<thead>,<tfoot>。
  • table.tBodies — <tbody> 元素的集合(根据标准还有很多元素,但是这里至少会有一个 — 即使没有被写在 HTML 源文件中,浏览器也会将其放入 DOM 中)。

<thead>,<tfoot>,<tbody> 元素提供了 rows 属性:

  • tbody.rows — 表格内部 <tr> 元素的集合。

<tr>:

  • tr.cells — 在给定 <tr> 中的 <td> 和 <th> 单元格的集合。
  • tr.sectionRowIndex — 给定的 <tr> 在封闭的 <thead>/<tbody>/<tfoot> 中的位置(索引)。
  • tr.rowIndex — 在整个表格中 <tr> 的编号(包括表格的所有行)。

<td> 和 <th>:
td.cellIndex — 在封闭的 中单元格的编号。

querySelector

  • elem.querySelector(css) :调用会返回给定 CSS 选择器的第一个元素。
  • elem.querySelectorAll(css):它返回 elem 中与给定 CSS 选择器匹配的所有元素。
  • elem.matches(css) :不会查找任何内容,它只会检查 elem 是否与给定的 CSS 选择器匹配。它返回 true 或 false。
  • elem.closest(css) :会查找与 CSS 选择器匹配的最近的祖先。

实时集合和静态集合

  • getElementsBy* 返回的是实时的集合
  • querySelectorAll 返回的是静态集合
<div>First div</div>

<script>
  let divs = document.getElementsByTagName('div');
  let divsSelector = document.querySelectorAll('div');
  alert(divs.length); // 1
  alert(divsSelector.length); // 1
</script>

<div>Second div</div>

<script>
  alert(divs.length); // 2
  alert(divsSelector.length); // 1 静态
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值