<ul id="ul1">
<li id="li1">111</li>
<li id="li2">222</li>
<li id="li3">333</li>
<li id="li4">444</li>
</ul>
<div id="div1"></div>
<br />
<input type="button" onclick="insert1();" value="insert" />
<input type="button" onclick="remove1();" value="remove" />
<input type="button" onclick="replace1();" value="replace" />
<input type="button" onclick="cloneNode1();" value="clone" />
<script type="text/javascript">
/*操作DOM树
insertBefore(newNode,oldNode):在节点之前加入新节点
removeChild(delNode):通过父节点删除子节点,不能自己删除自己
replaceChild(newNode,oldNode):替换节点 第一个参数:替换成的节点,第二个参数:被替换的节点 必须使用父节点进行替换,不能自己替换自己
cloneNode(boolean):是否复制,是true,否,FALSE
*/

function insert1() {
//获得ul根节点
var ul1 = document.getElementById("ul1");
//创建li
var li5 = document.createElement("li");
//创建文本
var text5 = document.createTextNode("555");
//把文本添加到li下面
li5.appendChild(text5);
//获得同级li
var li4 = document.getElementById("li4");
//把li添加到ul下面 insertBefore(newNode,oldNode);在节点之前加入新节点
ul1.insertBefore(li5, li4);

}

function remove1() {
//获得需要删除的节点
var li3 = document.getElementById("li3");
//获得ul根节点,2种方式
var ul1 = document.getElementById("ul1");
var ul2 = li3.parentNode;

//通过父节点删除子节点,不能自己删除自己
ul2.removeChild(li3);
}

function replace1() {

//获得根节点
var ul = document.getElementById("ul1");
//获得被替换的li子节点
var li2 = document.getElementById("li2");
//创建li标签
var li5 = document.createElement("li")
//创建新的li文本
var text5 = document.createTextNode("yyy");
//把文本添加到li下面
li5.appendChild(text5);
//replaceChild(newNode,oldNode)方法,替换节点 第一个参数:替换成的节点,第二个参数:被替换的节点 必须使用父节点进行替换,不能自己替换自己
ul.replaceChild(li5, li2);

}

function cloneNode1(){
/*
1、获得ul
2、执行复制方法cloneNode方法复制true
3、把复制之后的内容放到div里面去
获取到div
appendChild方法
*/
//获得根节点
var ul=document.getElementById("ul1");
//执行复制方法,复制ul
var ulcopy=ul.cloneNode(true);
//把复制之后的内容放到div里面
var div1=document.getElementById("div1");
div1.appendChild(ulcopy);
}
</script>

JS--操作DOM树的更多相关文章

  1. 【JavaScript实用技巧(二)】Js操作DOM(由问题引发的文章改版,新人大佬都可)

    [JavaScript实用技巧(二)]Js操作DOM(由问题引发的文章改版,新人大佬都可!) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人 ...

  2. 框架操作DOM和原生js操作DOM比较

    问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...

  3. js操作DOM对象

    js操作DOM对象  (Document Object Model)文档对象模型 nodeType返回值 1:元素节点 2:属性节点 3:文本节点 8:注释节点 9: 文档节点 nodeName 节点 ...

  4. 原生js操作DOM基础-笔记

    原文参考http://mp.weixin.qq.com/s?__biz=MzU3MDA0NTMzMA==&mid=2247485490&idx=1&sn=15197b4b53e ...

  5. 原生js操作Dom节点:CRUD

    知识点,依然会遗忘.我在思考到底是什么原因.想到研究生考试准备的那段岁月,想到知识体系的建立,知识体系分为正向知识体系和逆向知识体系:正向知识体系可以理解为教科书目录,逆向知识体系可以理解考试真题. ...

  6. JS操作DOM对象——JS基础知识(四)

    一.JavaScript的三个重要组成部分 (1)ECMAScript(欧洲计算机制造商协会) 制定JS的规范 (2)DOM(文档对象模型)重点学习对象 处理网页内容的方法和接口 (3)BOM(浏览器 ...

  7. [总结]JS操作DOM常用API详解

    文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...

  8. JS操作DOM常用API总结

    <JS高程>中的DOM部分写的有些繁琐,还没勇气整理,直到看到了这篇博文 Javascript操作DOM常用API总结,顿时有了一种居高临下,一览全局的感觉.不过有时间还是得自己把书里面的 ...

  9. JS 操作Dom节点之CURD

    许多优秀的Javascript库,已经封装好了丰富的Dom操作函数,这可以加快项目开发效率.但是对于非常注重网页性能的项目来说,使用Dom的原生操作方法还是必要的. 1. 查找节点 document. ...

  10. JS的Dom树小结

    一[DOM树节点]  DOM节点分为三大类:元素节点.文本节点.属性节点 文本节点.属性节点,为元素节点的两个子节点:  通过getElement系列方法,可以去到元素节点.     二[查看节点] ...

随机推荐

  1. pytorch学习-AUTOGRAD: AUTOMATIC DIFFERENTIATION自动微分

    参考:https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner-blitz-autog ...

  2. IndentationError 这个错误是缩进的问题

    1.自定义库导入时,提示这个错误,是缩进的问题

  3. face recognition[Euclidean-distance-based loss][Center Face]

    本文来自<A Discriminative Feature Learning Approach for Deep Face Recognition>,时间线为2016年.采用的loss是C ...

  4. Generative Adversarial Nets[pix2pix]

    本文来自<Image-to-Image Translation with Conditional Adversarial Networks>,是Phillip Isola与朱俊彦等人的作品 ...

  5. 实战Asp.Net Core:部署应用

    1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这也是不完整的.接下来,我们就来说说,如何部署 ...

  6. SpringBoot整合Mybatis使用注解或XML的方式开发

    2018-6-4 补充mybatis-spring-boot注解的使用 1.导包 只需要再导入mysql+mybatis两个包 <dependency> <groupId>or ...

  7. List对象去重碎碎念之神叨叨

    前言 List集合操作去除重复数据的这种情况经常会碰到,博客园里面也有很多大神们做过,在这里主要是借鉴然后自己整理了一下,主要是为了方便自己,以后再次碰到这种去重问题,直接打开自己的链接拿起键盘就是干 ...

  8. Linux 典型应用之远程连接SSH

    查看版本 cat /etc/redhat-release 如果ifconfig不能使用 yum install net-tools 修改配置 vim /etc/sysconfig/network-sc ...

  9. Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval o

    pom.xml报错: Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from https://repo.maven.apach ...

  10. java线程池实现原理

    (1):线程池存在哪些状态,这些状态之间是如何进行切换的呢? (2):线程池的种类有哪些? (3):创建线程池需要哪些参数,这些参数的具体含义是什么? (4):将任务添加到线程池之后运行流程? (5) ...