JavaScript DOM常用操作代码汇总


Posted in Javascript onJuly 03, 2020

1.理解DOM:

DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口。

怎么说,我从两个角度理解:

对于JavaScript,为了能够使JavaScript操作Html,JavaScript就有了一套自己的dom编程接口。

对于Html,dom使得html形成一棵dom树,类似于一颗家族树一样,一层接一层,子子孙孙。

所以说,有了DOM,在我看来就是相当于JavaScript拿到了钥匙一样可以去操作Html的每一个节点,触摸Html每寸肌肤。(咳。。。)

2.介绍Html的DOM树:

说明:html标签通过浏览器的解析后才会形成dom树,此后HTML中的每个标签元素,属性,文本都能看做是一个DOM的节点,JavaScript都能通过dom的提供的编程接口操作到每个节点,去了解浏览器的渲染机制能够帮助我们了解dom。

Html代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>dom</title>
</head>
<body>
  <div>
    <a href="www.baidu.com" rel="external nofollow" >百度</a>
  </div>
</body>
</html>

对应的DOM树结构图:

JavaScript DOM常用操作代码汇总

3.认识JavaScript中的DOM编程接口:

上面说了html形成的dom树,接着说下通过js的dom编程接口去操作这棵dom树。

JavaScriptDOM操作的常用方法和属性::

常用方法:

获取节点:

  • document.getElementById(idName) //通过id号来获取元素,返回一个元素对象
  • document.getElementsByName(name) //通过name属性获取id号,返回元素对象数组
  • document.getElementsByClassName(className) //通过class来获取元素,返回元素对象数组(ie8以上才有)
  • document.getElementsByTagName(tagName) //通过标签名获取元素,返回元素对象数组

获取/设置元素的属性值:

  • element.getAttribute(attributeName) //括号传入属性名,返回对应属性的属性值
  • element.setAttribute(attributeName,attributeValue) //传入属性名及设置的值

创建节点Node:

  • document.createElement("h3") //创建一个html元素,这里以创建h3元素为例
  • document.createTextNode(String); //创建一个文本节点;
  • document.createAttribute("class"); //创建一个属性节点,这里以创建class属性为例

增添节点:

  • element.appendChild(Node); //往element内部最后面添加一个节点,参数是节点类型
  • elelment.insertBefore(newNode,existingNode); //在element内部的中在existingNode前面插入newNode

删除节点:

element.removeChild(Node) //删除当前节点下指定的子节点,删除成功返回该被删除的节点,否则返回null

常用属性:

获取当前元素的父节点 :

element.parentNode //返回当前元素的父节点对象

获取当前元素的子节点:

  • element.chlidren //返回当前元素所有子元素节点对象,只返回HTML节点
  • element.chilidNodes //返回当前元素多有子节点,包括文本,HTML,属性节点。(回车也会当做一个节点)
  • element.firstChild //返回当前元素的第一个子节点对象
  • element.lastChild //返回当前元素的最后一个子节点对象

获取当前元素的同级元素:

  • element.nextSibling //返回当前元素的下一个同级元素 没有就返回null
  • element.previousSibling //返回当前元素上一个同级元素 没有就返回null

获取当前元素的文本:

  • element.innerHTML //返回元素的所有文本,包括html代码
  • element.innerText //返回当前元素的自身及子代所有文本值,只是文本内容,不包括html代码

获取当前节点的节点类型:node.nodeType //返回节点的类型,数字形式(1-12)常见几个1:元素节点,2:属性节点,3:文本节点。

设置样式:element.style.color=“#eea”; //设置元素的样式时使用style,这里以设置文字颜色为例。

4.总结:

大家都会觉得用jQuery来操作dom会更加的方便且好用,因为jq对js的dom进行了封装,使得我们Write Less, Do More。但是我觉得还是要总结一下原生js的dom,从根本上了解js对dom的操作,只会有利而无害。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
asp.net和asp下ACCESS的参数化查询
Jun 11 Javascript
海量经典的jQuery插件集合
Jan 12 Javascript
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
浏览器解析js生成的html出现样式问题的解决方法
Apr 16 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
JavaScript实现显示函数调用堆栈的方法
Apr 21 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
Aug 10 Javascript
24个解决实际问题的ES6代码片段(小结)
Feb 02 Javascript
javascript实现扫雷简易版
Aug 18 Javascript
JavaScript实现前端网页版倒计时
Mar 24 Javascript
JavaScript缺少insertAfter解决方案
Jul 03 #Javascript
原生javascript如何实现共享onload事件
Jul 03 #Javascript
Vue如何实现监听组件原生事件
Jul 03 #Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 #Javascript
JavaScrip如果基于url实现图片下载
Jul 03 #Javascript
基于VUE实现判断设备是PC还是移动端
Jul 03 #Javascript
JavaScript如何判断对象有某属性
Jul 03 #Javascript
You might like
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
微信小程序onLaunch异步,首页onLoad先执行?
2018/09/20 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
JS快速实现简单计算器
2020/04/08 Javascript
js编写简易的计算器
2020/07/29 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python提示No module named images的解决方法
2014/09/29 Python
Python中functools模块的常用函数解析
2016/06/30 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
python之信息加密题目详解
2019/06/26 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python获取引用对象的个数方式
2019/12/20 Python
python和js交互调用的方法
2020/06/23 Python
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
法律专业实习鉴定
2013/12/22 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
网吧消防安全责任书
2014/07/29 职场文书
小学工作总结2015
2015/05/04 职场文书
房产电话营销开场白
2015/05/29 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
Feign调用传输文件异常的解决
2021/06/24 Java/Android
新手初学Java网络编程
2021/07/07 Java/Android
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技