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 相关文章推荐
js表头排序实现方法
Jan 16 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
jquery实现图片切换代码
Oct 13 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
Mar 17 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
点击按钮弹出模态框的一系列操作代码实例
Mar 29 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
在Vue中使用mockjs代码实例
Nov 25 Vue.js
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
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
vue 中自定义指令改变data中的值
2017/06/02 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
详谈python http长连接客户端
2017/06/12 Python
详解Python sys.argv使用方法
2019/05/10 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
Python编程中类与类的关系详解
2019/08/08 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
单位介绍信格式范文
2015/05/04 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript