常用DOM API总结
一. 获取节点
1. 获取元素节点
getElementsById
getElementsByTagName
getElementsByClassName
2. 获取属性节点
getAttribute
3. 获取子节点
childNodes属性 // 获取所有子节点, 包括换行
firstChild属性
lastChild属性
previousElementSibling属性 // 获取相邻上一个节点
nextSibling属性 // 获取相邻下一个节点
parentNode属性 // 获取父节点, 包括父节点的所有子节点
二. 获取节点类型
nodeType属性
拓展: 常见节点类型
元素 1
属性 2
文本 3
注释 8
文档, 即document对象 9
三. 创建节点
createElement
createAttribute // 创建属性节点, 之后可以使用value属性赋值
createTextNode
cloneNode // 赋值节点, true保留子节点 false不保留子节点
四. 添加节点
appendChild // 在元素节点内部的最后, 附加一个子节点(通常是元素节点, 文本节点)
insertBefore // 插入一个与当前节点同级的新节点, 位置在当前节点的前面, 说明:document.insertBefore的使用方式是错误的, 一般情况下, 无法在根节点前插入元素
五. 删除节点
1. 元素, 文本节点
removeChild // 删除子节点
remove // 删除当前节点
2. 属性节点
removeAttribute
六. 设置节点
setAttributeNode // 为当前元素节点添加一个属性节点
appendChild // 为当前元素节点添加一个子节点
replaceChild // 替换当前节点的子节点
附: 测试代码
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div class="box1">
<h2 id="title1">商品栏</h2>
<ul id="goods"><li class="first">商品1</li><li>商品2</li><li>商品3</li><li class="last">商品4</li></ul>
</div>
<script>
/* 获取已存在节点 */
var h2Node1_exist = document.getElementById("title1");
var liNode1_exist = document.getElementsByClassName("first")[0];
var ulNode1_exist = document.getElementById("goods");
var liNode2_exist = document.getElementsByTagName("li")[2]; /* 创建新节点 */
var liNode1 = document.createElement("li");
var txtNode1 = document.createTextNode("halo");
liNode1.appendChild(txtNode1); /* 获取节点
console.log(document.getElementById("goods"));
console.log(document.getElementsByTagName("li"));
console.log(document.getElementsByClassName("last"));*/ /* 创建节点
// 1创建元素节点
console.log(document.createElement("span")); // 2创建属性节点并赋值
var attrNode = document.createAttribute("name");
attrNode.value = "shaohsiung";
console.log(attrNode);
// 将属性节点设置到标签上
h2Node1_exist.setAttributeNode(attrNode);
console.log(h2Node1_exist); // 3创建文本节点
var txtNode = document.createTextNode("halo world");
// 将文本节点设置到标签体内
h2Node1_exist.appendChild(txtNode);*/ /* 添加节点
// 添加子节点
h2Node1_exist.appendChild(liNode1); // 某节点前插入节点
// 说明:document.insertBefore的使用方式是错误的,无法在根节点前插入元素
ulNode1_exist.insertBefore(liNode1, liNode1_exist); */ /* 复制节点
// 不包含子节点
var result1 = ulNode1_exist.cloneNode(false);
console.log(result1); // 包含子节点
var result1 = ulNode1_exist.cloneNode(true);
console.log(result1);*/ /* 删除节点
// 删除子节点
ulNode1_exist.removeChild(liNode1_exist);
// 删除标签的属性
ulNode1_exist.removeAttribute("id");
// 删除当前节点
ulNode1_exist.remove(); */ /* 获取节点类型 常见节点类型小结:
元素 1
属性 2
文本 3
注释 8
文档, 即document对象 9
*/
//console.log(document.nodeType); /* 操作属性节点
// 获取元素节点某个属性值
console.log(h2Node1_exist.getAttribute("id"));
// 为元素节点设置属性值
h2Node1_exist.setAttribute("name", "shaohsiung");
// 删除元素节点属性
h2Node1_exist.removeAttribute("name"); */ /* 查找节点
// 获取ul标签所有子节点(包括换行)
// 说明:要特别注意这里的换行
console.log(ulNode1_exist.childNodes); // 获取ul标签第一个子节点
console.log(ulNode1_exist.firstChild); // 获取ul标签最后一个子节点
console.log(ulNode1_exist.lastChild);
// 可递归调用, 这里获取到文本节点
console.log(ulNode1_exist.lastChild.lastChild); */ /* 获取相邻的节点
// 上一个
console.log(liNode2_exist.previousElementSibling);
// 下一个
console.log(liNode2_exist.nextSibling); */ // 获取父节点
// 说明:包括父节点的所有子节点
console.log(liNode2_exist.parentNode); // 替换当前节点的子节点
ulNode1_exist.replaceChild(liNode1, liNode2_exist);
</script>
</body>
</html>
常用DOM API总结的更多相关文章
- 常用DOM API
Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它,都共享着相同的基本属性和方法.常见的Node有 element,text,attribute,comment,documen ...
- React常用的API说明
楼主刚开始学习react,感受到了他的博大精深,看到很多莫名的用法,不知云云,找了很多没有找到参考手册,只有在中文社区和react官方看了一些,收集了一些比较常用的API,有补充的可以楼下评论补充.后 ...
- 第二篇、JavaScript常用的API
下面是我整理的一些JavaScript常用的API清单. 目录 元素查找 class操作 节点操作 属性操作 内容操作 css操作 位置大小 事件 DOM加载完毕 绑定上下文 去除空格 Ajax JS ...
- DOM API详解
来源于:http://zxc0328.github.io/2016/01/23/learning-dom-part1/ https://zxc0328.github.io/2016/01/26/lea ...
- JavaScript DOM API初步(整理)
文档对象模型 文档对象模型(Doucment Object Model,DOM)是表示文档(如HTML文档.XML文档)和访问.操作构成文档的各种元素的应用程序接口.在DOM中,HTML文档的层次结构 ...
- jquery中最常用的API有哪些
jquery中最常用的API有哪些 一.总结 一句话总结:取html的方法,class相关的方法,val相关的方法,data相关的方法,attr相关的方法 1.jQuery Object Access ...
- web dom api中的Selection和Range
如果你做过wysiwyg这样的app,一个很让人头疼的问题是如何保证执行bold,italic等格式化操作后保持先前鼠标所在的位置.要好好的解决这个问题,就必须将Selection和Range的api ...
- 抛弃jQuery:DOM API之操作元素
原文链接:http://blog.garstasio.com/you-dont-need-jquery/dom-manipulation/ 我的Blog:http://cabbit.me/you-do ...
- 抛弃jQuery:DOM API之选择元素
原文链接:http://blog.garstasio.com/you-dont-need-jquery/selectors/ 我的Blog:http://cabbit.me/you-dont-need ...
随机推荐
- 李宏毅机器学习课程---4、Gradient Descent (如何优化 )
李宏毅机器学习课程---4.Gradient Descent (如何优化) 一.总结 一句话总结: 调整learning rates:Tuning your learning rates 随机Grad ...
- jquery操作html元素之(删除元素)
删除元素/内容 如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 jQuery remove( ...
- Vue项目的配置项
目录 Vue项目的配置项 配置项 加载全局css文件 加载全局js文件 store仓库的配置和简单用法 BootStrap环境和jQuery的配置 前端后端交互(CORS问题) axios配置项(前端 ...
- <mysql>mysql基础学习
1.Join语法 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接):取得左表(table1)完全记录 ...
- 2018北京网络赛 G The Mole /// 分块暴力 点线距离
题目大意: 给定n段线段 编号为1~n 接下来m个询问 给定一点 输出离该点最近的线段的最小编号(距离相等时取编号小的) 题解 大致就是 1.坐标范围为(0,2^16-1) 将坐标系划分为2^8*2^ ...
- 配置Spring Security 错误:Property or field 'ROLE_USER' cannot be found
在学习http://www.mkyong.com/spring-security/spring-security-hello-world-example/时,出现以下错误: Property or f ...
- extern const 不能一起用
转载至:https://www.cnblogs.com/herenzhiming/articles/5442893.html 常变量在定义的时候必须初始化,所以当你在a.cpp中定义extern co ...
- java编程——数据的加法
设计思想: 第一步:从键盘上输入一定个数的整数. 第二步:因为在main()方法中的参数是String类型的,所以第一步中输入的其实是字符类型,在这一步要把String转化成int. 第三步:初始化s ...
- JS事件 鼠标移开事件(onmouseout)鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序。
鼠标移开事件(onmouseout) 鼠标移开事件,当鼠标移开当前对象时,执行onmouseout调用的程序. 当把鼠标移动到"登录"按钮上,然后再移开时,触发onmouseout ...
- 数据库MySQL--条件查询/排序查询
一.条件查询 条件查询:满足条件的字段被筛选出来 语法:select 查询列表字段 from 表名 where 筛选条件: 条件查询的条件分类: 1.按条件表达式筛选:条件运算符:>, < ...