在dom最前面插入_JavaScript中的DOM
1. 关于DOM
文档对象模型(DocumentObject Model),是基于浏览器编程的一套API接口,W3C出台的推荐标准,每个浏览器都有一些细微的差别,其中以Mozilla(火狐)的浏览器最与标准接近。
通过 DOM,可以访问所有的 HTML元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。
2. 动态改变文档内容
要想对页面的内容做修改,需要如下方式来操作:
a.解析文档(如HTML)并生成DOM树
b.通过DOM提供的属性和方法,获取或改变文档的内容
2.1 DOM的节点
HTML 文档中的每个成分都是一个节点(Node)
DOM 是这样规定的:
- 整个文档是一个文档节点
- 每个 HTML 标签是一个元素节点
- 包含在 HTML 元素中的文本是文本节点
- 每一个 HTML 属性是一个属性节点
- 注释属于注释节点
2.1.1 节点间的关系
节点彼此都有等级关系
父节点、子节点、兄弟节点(同级节点)
2.2 DOM标准接口
W3C提供了三类DOM标准接口,如下:
a. 核心DOM,适用于各种结构化文档
b.HTML DOM,专用于HTML文档
c. XML DOM,专用于XML文档
3. 核心DOM操作
3.1 访问节点
访问节点兼容处理
getElement系列方法
使用getElement系列方法来访问指定的节点
- getElementById():返回对拥有指定id的第一个对象的引用
- getElementsByTagName():返回带有指定名称的对象集合
- getElementsByClassName():返回指定的类选择器的集合
- getElementsByName():返回带有指定名称的对象集合(注意不是所有标签都有name属性)
3.1.1 节点信息1
每个节点都拥有包含节点某些信息的属性
- nodeName(节点名称)
- nodeValue(节点值)
- nodeType(节点类型)
3.1.2 节点信息2
nodeName
- 元素节点的 nodeName (节点名称)是标签名称
- 属性节点的 nodeName 是属性名称
- 文本节点的 nodeName 永远是 #text
- 文档节点的 nodeName 永远是 #document
nodeValue
- 对于文本节点,nodeValue 属性包含文本
- 对于属性节点,nodeValue 属性包含属性值
nodeType
- 元素 1 、属性 2、 文本 3、 注释 8、 文档 9
- 上面不同的数值代表不同的节点类型
3.2 创建和操作节点
3.2.1 主要方法
方法 说 明
createElement( tagName) 创建一个名为tagName的新元素节点,用法Document.createElement(标签名)
ANode.appendChild( BNode) 把子节点B追加到父节点A里面的末尾
insertBefore( ANode,BNode ) 把A节点插入到B节点之前
Node.loneNode(deep) deep为true则复制该节点以及该节点的所有子节点,为false则只复制该节点和其属性
3.2.2 操作节点的属性
3.3 删除和替换节点
方法 说 明
removeChild( node) 删除指定的节点(用父级元素去调用它)
replaceChild( newNode, oldNode) 用newNode来替换oldNode(https://www.cnblogs.com/zzq919101/p/6017152.html)
3.3.1 removeChild()示例代码如下
var tb = document.getElementById("tb");//先找到要删除的节点,这里要删除一行var tr = tb.lastChild.lastChild;//这里也需要父节点操作子节点tr.parentNode.removeChild(tr);
3.3.2 replaceChild()示例代码
var tb = document.getElementById("tb");var tr = document.createElement("tr");var td1 = document.createElement("td");var td2 = document.createElement("td");td1.innerHTML = "我的内容1";td2.innerHTML = "我的内容2";tr.appendChild(td1);tr.appendChild(td2);//父节点操作子节点//两个参数,第一个表示新节点,第二个表示旧节点,这里用心节点替换旧节点tb.lastChild.replaceChild(tr,tb.lastChild.firstChild);
3.4 其他
id,value等操作
innerHTML和innerText的区别
- 如果内容中有html标签,使用innerHTML时,内容中的html标签会被解析出来,而使用innerText时,html只会被当作文本显示出来
元素.style.样式
className
3.5 示例
代码1:
结果1:
代码2:
结果2:
代码3:
结果3:
4. HTML DOM操作
HTML文档中的每个节点,都是DOM对象,每个DOM对象都有属于自己的属性和方法.
HTML DOM在操作表格时,我们把一个表格看成是一个table对象,那么一个table对象是由若干个行对象(row)组成的,而其中每个行对象又是由若干个单元格对象(cell)组成的
Table对象可以操作行对象,行对象可以操作单元格对象
4.1 table表格对象
类别 名称 描述
属性 rows[] 返回包含表格中所有行的一个数组
方法 insertRow() 在表格中插入一个新行
方法 deleteRow() 从表格中删除一行
4.2 row行对象
类别 名称 描述
属性 cells[] 返回包含行中所有单元格的一个数组
属性 rowIndex 返回该行在表中的位置
方法 insertCell() 在一行中的指定位置插入一个空的
标签
方法 deleteCell() 删除行中指定的单元格
另,对于单元格对象,还有cellIndex可以获取单元格的索引号
例如,这里需要在表格的末尾追加一行:
var tb = document.getElementById("tb");//添加之前,tb中共有多少个tr,返回的是一个数组var alltrs = tb.lastChild.rows;//先在tb中添加一行,此时行虽然添加了,但行中没有任何内容//此时传递的参数了,是一个添加的位置,是tr的索引号,这里是在末尾追加var newtr = tb.insertRow(alltrs.length);//再在新添加的行中,添加单元格对象var td1 = newtr.insertCell(0);var td2 = newtr.insertCell(1);//然后还需要往td中添加内容td1.innerHTML = "html dom";td2.innerHTML = "测试";
在dom最前面插入_JavaScript中的DOM相关推荐
- dom刷新局部元素_JavaScript中DOM和BOM基础
BOM部分基础内容 BOM(Broswer Object Model)浏览器对象模型 ,主要用来获取或设置浏览器的属性.行为 ; 使JavaScript可以和浏览器进行交互 ; window 是 BO ...
- jQuery 学习笔记一(认识jQuery jQuery选择器 jQuery中的DOM操作)
第一章 认识jQuery jQuery代码风格 $(document).ready(function(){ //... }); 简化 $(function(){ //... }); jQuery对象转 ...
- html5中的dom中的各种节点的层次关系是怎样的
html5中的dom中的各种节点的层次关系是怎样的 一.总结 一句话总结:Node节点是所有节点的基类,所以都继承它的方法 1.dom提供在js中动态修改html标签的作用 比如增加修改标签等,并且是 ...
- jQuery 基础教程 (四)之jQuery中的DOM操作
一.jQuery 中的 DOM 操作 (1)DOM(Document Object Model-文档对象模型):一 种与浏览器, 平台, 语言无关的接口, 使用该接口可以 轻松地访问页面中所有的标准组 ...
- java xml setdoctype_如何在Java中使用DOM将自定义doctype标记添加到带有xhtml标记的xml中?...
我使用java中的DOM创建了一个XML文档,并将XHTML标记插入到XML文档中.现在我要添加如下doctype: ]> 我试着把它作为一个字符串追加,但没有成功. DocumentBuild ...
- 在dom最前面插入_前端性能优化之dom编程
写在前面 总所周知,在前端的日常里面,采用JS操作DOM节点的情况占据了大多数.虽然现在有MVVM主流框架代替我们做了这些事情,但充分理解在DOM操作各种损耗问题,将有助于让我们更加理解和优化问题. ...
- 第三章(jQuery中的DOM操作)
3.1 DOM 操作分类 ①DOM Core 包括(getElementById() , getElementsByTagName() , getAttribute() , setAttribute( ...
- HTML中的 DOM 是什么?有什么作用?
DOM: Document Object Model : 管理我们的文档 增删改查规则 HTML中的dom方法中的增删查改类似于Java和C中的增删查改: 一些常用的 HTML DOM 方法: ...
- 三、jQuery 中的 DOM 操作(超详细)
文章目录 前言 一. DOM 介绍 二. 查找节点 2.1查找元素节点 2.2查找属性节点 三. 创建节点 3.1.创建元素节点 3.2.创建文本节点 3.3.创建属性节点 四.插入节点 4.1 DO ...
最新文章
- 新手零基础学习Python第一步,搭建开发环境!
- oracle job如何执行存储过程,oracle定时执行存储过程的job
- torch.unsqueeze()和torch.unsqueeze()
- 剑指offer:二叉树中和为某一值的路径
- RecyclerView onClick
- c语言位操作的高级应用
- 移动金库模式保护客户信息 覆盖17套关键系统
- J2EE 第二阶段项目之JUnit4进行单元测试(五)
- 通过反射认识泛型的本质
- 分布式系统必读中文版-分布式系统模式-分享
- 关于土地分类格式互转、土地利用转移矩阵、变化图谱计算详解
- window一键清理垃圾代码
- 物流项目介绍示范 有用
- 关于无线网络的静态ip与动态ip设置
- pythonrq模块_Python RQ 任务队列中的队列 ( Queue )
- android 高德地图之poi搜索功能的实现
- matlab rloess,R语言利用loess如何去除某个变量对数据的影响详解
- Netty | 开启 Linux 平台下的 Native
- 计算机四级证书难考吗 考试内容是什么?
- 谈谈php里的IOC控制反转,DI依赖注入
热门文章
- 求qt如何解决小数计算过程中的精度丢失
- 多线程:CopyOnWriteArrayList
- 远程计算机 函数不支持,win7远程桌面连接提示要求的函数不受支持怎么办
- xrdpdf卡片在哪可下载_暑假学习英语字母,就是这样简单(附可打印字母卡下载)...
- php strlen ctf,CTF中的PHP反序列化漏洞简单分析
- php业务的适用场景,根据业务场景寻找合适解决方案(PHP)?
- linux nfs spec,创建 NFS Ubuntu Linux 服务器卷 - Azure Kubernetes Service | Microsoft Docs
- php seaslog安装,浅谈win10下安装php seaslog扩展的方法
- 辅助驾驶等级_双AMR电机位置传感器,助力自动驾驶安全出行
- 苹果app商品定价_【知乎问答】苹果 App Store 新推出的 1 元或 3 元定价对开发者有什么影响?...