JavaScript DOM节点操作方法总结


Posted in Javascript onAugust 23, 2016

节点类型主要有三种:元素节点,属性节点和文本节点。

JavaScript DOM节点操作方法总结

而对DOM的主要也就是围绕元素节点和属性节点增删改查。下面就分别从对元素节点的操作和对属性节点的操作来介绍。

元素节点

在对DOM进行增删改之前,首先要找到对应的元素。具体的查找方法如下:

getElementByID()       // 得到单个节点
 getElementsByTagName()    // 得到节点数组 NodeList
 getElementsByName()      // 得到节点数组 NodeList

同时还可以利用元素节点的属性获取它的父子节点和文本节点:

子节点

 

Node.childNodes  //获取子节点列表NodeList; 注意换行在浏览器中被算作了text节点,如果用这种方式获取节点列表,需要进行过滤
Node.firstChild  //返回第一个子节点
Node.lastChild  //返回最后一个子节点

 父节点

Node.parentNode   // 返回父节点
Node.ownerDocument  //返回祖先节点(整个document)

同胞节点

Node.previousSibling    // 返回前一个节点,如果没有则返回null
Node.nextSibling       // 返回后一个节点

新增节点首先要创建节点,然后将新建的节点插入DOM中,所以下面分别介绍创建节点和插入节点的方法,复制节点的方法也在创建节点中进行介绍。

创建节点

createElement()    // 按照指定的标签名创建一个新的元素节点

创建代码片段(为避免频繁刷新DOM,可以先创造代码片段,完成所有节点操作之后统一添加到DOM中)

createDocumentFragment()

复制节点

clonedNode = Node.cloneNode(boolean) // 只有一个参数,传入一个布尔值,true表示复制该节点下的所有子节点;false表示只复制该节点

插入节点

/*插入node*/
parentNode.appendChild(childNode);  // 将新节点追加到子节点列表的末尾
parentNode.insertBefore(newNode, targetNode);  //将newNode插入targetNode之前

/*插入html代码*/
node.insertAdjacentHTML('beforeBegin', html);  //在该元素之前插入代码
node.insertAdjacentHTML('afterBegin', html);  //在该元素的第一个子元素之前插入代码
node.insertAdjacentHTML('beforeEnd', html);  //在该元素的最后一个子元素之后插入代码
node.insertAdjacentHTML('afterEnd', html);  //在该元素之后插入代码

替换节点

parentNode.replace(newNode, targetNode);    //使用newNode替换targetNode

移除节点

parentNode.removeChild(childNode);  // 移除目标节点
node.parentNode.removeChild(node);    //在不清楚父节点的情况下使用

属性节点

操作属性节点,就是对DOM样式进行增删改查。对于行内样式、内联样式、外部样式有不同的操作方法;各种方法获得的样式也有可读可写和只读之分。

直接获取CSS样式

node.style.color     // 可读可写

Style本身的属性和方法

node.style.cssText     //获取node行内样式字符串
node.style.length      //获取行内样式个数
node.style.item(0)     //获取指定位置的样式

获取和修改元素样式

HTML5为元素提供了一个新的属性:classList 来实现对元素样式表的增删改查。操作如下:

node.classList.add(value);     //为元素添加指定的类
node.classList.contains(value);  // 判断元素是否含有指定的类,如果存在返回true
node.classList.remove(value);  // 删除指定的类
node.classList.toggle(value);  // 有就删除,没有就添加指定类

修改DOM特性的方法

Node.getAttribute('id')    // 获取
Node.setAttribute('id')    // 设置
Node.removeAttribute()     // 移除
Node.attributes        // 获取DOM全部特性

只读方法

getComputedStyle是window的方法。它能够获取当前元素所有最终使用的CSS属性值,但是是只读的。它有两个参数,第一个为传入的节点,第二个可以传入:hover, :blur等获取其伪类样式,如果没有则传入null。

然而IE并不支持getComputedStyle方法,可以使用currentStyle来保持兼容性:

window.getComputedStyle ? window.getComputedStyle(node, null) : node.currentStyle

以上这篇JavaScript DOM节点操作方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
面向对象的Javascript之二(接口实现介绍)
Jan 27 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
Aug 27 Javascript
jquery实现图片平滑滚动详解
Mar 22 jQuery
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
如何用Node.js编写内存效率高的应用程序
Apr 30 Javascript
EasyUI创建对话框的两种方式
Aug 23 #Javascript
ES6所改良的javascript“缺陷”问题
Aug 23 #Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 #Javascript
如何利用JSHint减少JavaScript的错误
Aug 23 #Javascript
jQuery事件处理的特征(事件命名机制)
Aug 23 #Javascript
深入浅出 jQuery中的事件机制
Aug 23 #Javascript
javascript实现简单的on事件绑定
Aug 23 #Javascript
You might like
一个多文件上传的例子(原创)
2006/10/09 PHP
获取URL文件名后缀
2013/10/24 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
python 统计代码行数简单实例
2017/05/04 Python
基于python中theano库的线性回归
2018/08/31 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
python中time包实例详解
2021/02/02 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
中专生自我鉴定
2013/12/17 职场文书
会计人员岗位职责
2014/03/19 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
小学课外阅读总结
2014/07/09 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
年终工作总结范文
2019/06/20 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
Python的三个重要函数详解
2022/01/18 Python
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang