一、文档树结构

   DOM 可以将任何 HTML 或 XML 描绘成一个由多层节点构成的结构。

   节点(Node)构成 HTML 文档最基本的的单元。

   节点分为不同的类型,每种类型分别表示文档中不同的信息。每个节点都拥有各自的特点、数据和方法,另外也与其他节点存在某种关系。

   节点之间的关系构成了层次,而所有页面标记则表现为一个以特定节点为根节点的树形结构。

   节点类型:文档节点、元素节点、属性节点、文本节点、注释节点

    整个文档是一个文档节点

    每个HTML元素是元素节点

    每个HTML元素是属性节点

    HTML元素内的文本是文本节点

    注释是注释节点

   文档树:

二、节点层级

   节点层级:

  

   节点层次常用方法

parentNode: 获取当前元素的父节点(只有一个)
childNodes: 获取当前元素的所有子节点(有多个)
children: 获取当前元素的子元素节点
firstChild : 获取第一个子节点
lastChild: 获取最后一个子节点
nextSibling: 获取下一个兄弟节点
previousSibling: 获取上一个兄弟节点
nextElementSibling: 获取下一个兄弟元素节点
previousElementSibling: 获取上一个兄弟元素节点

    注意

    nextElementSibling和previousElementSibling有兼容性问题,IE9 以后才支持

    firstElementChild 和 lastElementChild 有兼容性问题,IE9 以后才支持

    处理浏览器兼容性:

 // 处理浏览器兼容性
// 获取第一个子元素
function getFirstElementChild(element) {
var node, nodes = element.childNodes, i = 0;
while (node = nodes[i++]) {
if (node.nodeType === 1) {
return node;
}
}
return null;
} // 处理浏览器兼容性
// 获取下一个兄弟元素
function getNextElementSibling(element) {
var el = element;
while (el = el.nextSibling) {
if (el.nodeType === 1) {
return el;
}
}
return null;
}

   节点操作常用方法

appendChild()
insertBefore()
removeChild()
replaceChild()

  

三、节点属性

  1、nodeType 节点类型属性

    返回一个整数,这个数值代表这给定节点的类型,只读类型。

    •  1  代表  元素节点
    • 2  代表  属性节点
    • 3  代表  文本节点

  2、nodeName 节点名称属性(标签名称)

    代表当前节点的名字,只读属性。如果给定节点是一个文本节点,nodeName 属性将返回内容为 #text 的字符串。

  3、nodevalue 节点值

       返回给定节点的当前值(字符串),可读写的属性

      (1)元素节点的 nodeValue 始终是 null

      (2)属性节点:返回值是这个属性的值

      (3)文本节点:返回值是这个文本节点的内容

  

四、节点操作

  1、DOM查询

功能

API

返回值

●在整个文档范围内查询元素节点

根据id值查询

document.getElementById(“id值”)

一个具体的元素节点

根据标签名查询

document.getElementsByTagName(“标签名”)

元素节点数组

根据name属性值查询

document.getElementsByName(“name值”)

元素节点数组

●在具体元素节点范围内查找子节点

查找全部子节点

element.childNodes【W3C考虑换行,IE≤8不考虑】

节点数组

查找第一个子节点

element.firstChild【W3C考虑换行,IE≤8不考虑】

节点对象

查找最后一个子节点

element.lastChild【W3C考虑换行,IE≤8不考虑】

节点对象

查找指定标签名的子节点

element.getElementsByTagName(“标签名”)

元素节点数组

●查找指定元素节点的父节点:element.parentNode

●查找指定元素节点的兄弟节点

查找前一个兄弟节点

node.previousSibling【W3C考虑换行,IE≤8不考虑】

节点对象

查找后一个兄弟节点

node.nextSibling【W3C考虑换行,IE≤8不考虑】

节点对象

  2、DOM 增删改

API

功能

document.createElement(“标签名”)

创建元素节点并返回,但不会自动添加到文档中

document.createTextNode(“文本值”)

创建文本节点并返回,但不会自动添加到文档中

element.appendChild(ele)

将ele添加到element所有子节点后面

parentEle.insertBefore(newEle,targetEle)

将newEle插入到targetEle前面

parentEle.replaceChild(newEle, oldEle)

用新节点替换原有的旧子节点

parentEle.removeChild(childNode)

删除指定的子节点

element.innerHTML

读写HTML代码

JavaScript 之 节点操作的更多相关文章

  1. JavaScript DOM节点操作总结

    节点类型 节点类型主要有三种:元素节点,属性节点和文本节点. 而对DOM的主要也就是围绕元素节点和属性节点的增删改查.下面就分别从对元素节点的操作和对属性节点的操作来介绍. 元素节点 查 在对DOM进 ...

  2. 前端之javascript的节点操作和Event

    一 节点的增删改查 创建节点:createElement(标签名):创建一个指定名称的节点. 追加节点: 追加一个子节点:somenode.appendChild(标签名) 指定某个位置前面添加一个节 ...

  3. javaScript之节点操作

    javaScript程序员避免不了要操作页面中的DOM,除了经常使用的: appendChild()向childNodes列表的末尾添加一个节点. insertBefore(),接受两个参数,要插入的 ...

  4. JavaScript DOM–节点操作

    节点 节点至少拥有nodeType(节点类型).nodeName(节点名称)和nodeValue(节点值)这三个基本属性. 元素节点 nodeType  为1 属性节点 nodeType  为2 文本 ...

  5. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  6. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

  7. JavaScript -- 节点操作, 事件触发, 表单伸缩

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 前端JavaScript之DOM节点操作

    1.HTML DOM是啥 Document Object Model:定义了访问和操作HTML文档的标准方法,把HTML文档呈现为带有元素,属性和文本的树状结构 2.解析过程 HTML加载完毕,渲染引 ...

  9. JavaScript之DOM操作,事件操作,节点操作

    1,DOM操作 1.1  概念 所谓DOM,全称Document Object Model 文档对象模型,DOM是W3C(World Wide Web Consortuum )标准,同时也定义了访问诸 ...

随机推荐

  1. matlab-画地形图

    1.画三维图 之前画曲面的三维图,运用z=x2+y2 算出z和Z,如果是给出数据的地形则没办法用公式算,为此,引入插值自动造出地形的坐标. 拟合和插值的区别:插值是必须要过点,曲线可以不光滑:拟合则是 ...

  2. android开发环境sdk manager无法更新问题

    由于无法fq,也没有vpn,建议各位新手不用sdk manager去安装,直接下载bundle包,就不用去折腾各种开发环境了.推荐bundle下载地址:http://adt.android-studi ...

  3. zzulioj - 2623: 小H的作业题

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2623 题目描述        期末考试即将来临,同学们都积极的在图书馆复习.今天小H也来到图书馆复习,小H掏 ...

  4. Office Tool Plus 安装Office

    Office Tool Plus 是一款集office 卸载安装管理,激活等多功能于一体的神器. 官网:https://otp.landian.vip/en-us/ 下载 安装 值得注意的是Retai ...

  5. 使用Python3进行AES加密和解密 输入的数据

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  6. sql server 2016 AlwaysOn实现无域高可用全教程

    一.简介环境:小编使用的服务器是windows server 2016(系统服务器) + sql server 2016(数据库服务器)(windows server 2016 + sql serve ...

  7. Linux配置DNS

    vi /etc/resolv.conf, 后面加上nameserver 114.114.114.114

  8. SpringCloud组件学习-图

    图很清晰,直接放大浏览器,或者下载下来放大看

  9. Maven 教程(7)— Maven使用的最佳实践

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79544201 1.设置MAVEN_OPTS环境变量 通常需要设置MAVEN_OP ...

  10. JMeter工具学习(一)工具使用详细介绍

    备注: JMeter版本4.0 JDK版本1.8 1,JMeter下载 2,下载后直接解压 3,打开解压文件,找到bin目录下的jmeter.bat,双击打开 4,打开jmeter 6,右键Test ...