当网页被加载时,浏览器会创建页面的文档对象模型DOM,即Document Object Model

整个文档为一个文档节点(document对象)

每个html元素为一个元素节点(element对象)

html元素内的文本为文本节点(textNode对象)

html元素的属性为属性节点(attribute对象)

html注释为注释节点(comment对象)

节点自身属性:

nodeType:节点类型

nodeName:节点名称

nodeValue:节点值

attributes:节点的属性节点

innerHTML:节点的所有内容,包含节点下的文本,子标签等

innerText:节点的文本内容,不包含子标签

导航属性:

parentElement / parentNode:父节点标签

children:所有子标签

firstElementChild:节点的第一个子元素标签

lastElementChild:节点的最后一个子元素标签

nextElementSibling:下一个兄弟元素标签

previousElementSibling:上一个兄弟元素标签

添加元素

parent.appendChild(child) :用于向parent父元素中添加新元素,添加到尾部

parent.insertBefore(newchild,oldchild):用于向parent父元素中添加新元素newchild,且添加到oldchild元素的前面。

<div id="div" style='background:pink'>  <!--一个div下包含两个段落-->
  <p id="p1">这是一个段落。</p>
  <p id="p2">这是另外一个段落。</p>
</div>
<script>
  var para1 = document.createElement("p"); //创建段落p元素
  var node1 = document.createTextNode("这是一个新的段落,添加到尾部。"); //创建文本节点
  para1.appendChild(node1); //将文本节点添加到p元素,这两步可直接使用para1.innerHTML='这是一个新的段落,添加到尾部。'
  var para2 = document.createElement("p");
  var node2 = document.createTextNode("这是一个新的段落,添加到开头。");
  para2.appendChild(node2);
  var element1 = document.getElementById("div"); //获取父元素div
  var element2 = document.getElementById("p1"); //获取第一个段落元素
  element1.appendChild(para1); //向父元素中添加创建的子元素,默认放在最后面
  element1.insertBefore(para2,element2); //向父元素中添加创建的子元素,位置在element2元素前面
</script>

以上,document.createElement("p")为创建段落,document.createTextNode("*")为创建文本节点。

element1.appendChild(para1)为添加子元素到末尾,element1.insertBefore(para2,element2)为添加子元素到指定元素前面。

删除元素parent.removeChild(child),删除元素必须知道其父元素

<div id="div1" style='background:pink'>
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
<script>
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.removeChild(child);
</script>

替换元素parent.replaceChild(newchild,oldchild),使用newchild元素替换oldchild元素

<div id="div1" style='background:pink'>
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>

js增加、删除、替换DOM对象的更多相关文章

  1. 百万年薪python之路 -- JS的BOM与DOM对象

    BOM对象 location对象 location.href 获取URL location.href="URL" // 跳转到指定页面 location.reload() 重新加载 ...

  2. js下 Day01、DOM对象,BOM浏览器对象模型

    一.初识DOM 1.什么是DOM?为什么学习DOM 2.DOM是实现js在网页实现交互的关键环节,我们的js代码就是通过DOM的方法来实现对于html内容的操作. 3.认识DOM实现了js和网页结合的 ...

  3. js ajax 传送xml dom对象到服务器

    客户端代码 1 <script> var isie = true; var xmlhttp = null; function createXMLHTTP() {//创建XMLXMLHttp ...

  4. jQuery -&gt; 删除/替换DOM元素

    删除 删除操作很easy,直接在结果集后链式调用remove()方法就可以. 比如.要删除下面html脚本中全部的a元素.直接通过 $('a'.remove(); 就能够做到了. <h3> ...

  5. js点滴知识(1) -- 获取DOM对象和编码

    在今天的工作中发现了一些小的问题,在网上查了一下,才知道自己的js才是冰山一角,以后要虚心向他人学习,要虚怀若谷. 发现一:js获取DOM对象与jquery的区别 先前总以为,二者是一样的,最近才知道 ...

  6. js获取dom对象style样式的值

    js获取到的dom对象的style通常是没有值得,因为我们都写在外部文件中,从慕课网上见到讲师封装的一个方法,挺不错.特此记录下来. function getStyle(obj,attr){ if(o ...

  7. DOM 对象和jQuery对象的转换

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 细看JS中的BOM、DOM对象

                                        DOM对象模型  DOM(Document Object Model),是指文档对象模型,是W3C组织推荐的处理可扩展标志语言的 ...

  9. 56、jsのBOM对象与DOM对象

    javascript的Bom和Dom对象使我们学习的重点,这篇随笔可以重点阅读 一.BOM对象 1.window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个windo ...

随机推荐

  1. git的reset的理解

    git的reset的理解 1.在理解reset命令之前,先对git中涉及到的与该reset命令相关概念进行说明和解释HEAD这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交Indexind ...

  2. 移动开发--viewport

    手机浏览器默认做了2件事情: 一.页面渲染在一个980px(ios,安卓可能有640px或1000多不等)的viewport. 二.缩放 为什么渲染时,要有viewport? 为了排版正确(980px ...

  3. jmeter4.0 执行jmeter_server.bat报错

    Jmeter分布式执行1.-------------------------------Jmeter4.0  执行jmeter_server.bat   报错,是由于4.0要手工生成密钥 bin目录下 ...

  4. node.js初识02

    node.js相较于那些老的服务器语言,他的优势在于,节省了I/O的时间,主要的特点是单线程,非阻塞和事件驱动,其实三个说的是同一个事情,相较于多线程而言,单线程的特点是,使用的那一条线程的cpu的利 ...

  5. [转]kafka介绍

    转自 https://www.cnblogs.com/hei12138/p/7805475.html kafka介绍 1.1. 主要功能 根据官网的介绍,ApacheKafka®是一个分布式流媒体平台 ...

  6. EL的隐含对象 (二)【访问作用域范围的隐含对象】

    在EL中提供了4个用于访问作用域范围的隐含对象,即pageScope.requestScope.sessionScope和applicationScope.应用这4个隐含对象指定所要查找的标识符的作用 ...

  7. would you please...could you please...两句区别是什么?

    Could you please 是can you please 更为礼貌.委婉的说法,并不是过去式,是“能否麻烦你……”.“请你……”的意思,更侧重“能否”及客观情况:回答时要注意,eg:A:“Co ...

  8. 大话设计模式C++ 适配器模式

    适配器模式:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作. 角色: (1)Target:这是客户所期待的接口,Target可以 ...

  9. How to compute f1 score for each epoch in Keras

    https://medium.com/@thongonary/how-to-compute-f1-score-for-each-epoch-in-keras-a1acd17715a2 https:// ...

  10. jQuery事件--change([[data],fn])、on(events,[selector],[data],fn)和hover([over,]out)

    change([[data],fn]) 概述 当元素的值发生改变时,会发生 change 事件. 该事件仅适用于文本域(text field),以及 textarea 和 select 元素.当用于 ...