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 相关文章推荐
Javascript Select操作大集合
May 26 Javascript
JS简单实现登陆验证附效果图
Nov 19 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
解决element-ui的下拉框有值却无法选中的情况
Nov 07 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
最令PHP初学者头痛的十四个问题
2006/07/12 PHP
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
详解React中setState回调函数
2018/06/14 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
简单了解python 邮件模块的使用方法
2019/07/24 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
大学自主招生自荐信
2013/12/16 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
支部书记四风对照材料
2014/08/28 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
Django rest framework如何自定义用户表
2021/06/09 Python