<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. i春秋-百度杯十月场-EXEC

    进入网站,查看源代码,发现是用vim编辑,而抓包没有有效信息,加参数也无果.百度查了一下vim能形成什么文件.找到答案说,用vim编辑文本xxx.php中途退出,会自动创建一个文件.xxx.php.s ...

  2. VS2015/Visual Studio快捷键无效问题

    0 VS2015快捷键无效问题的解决办法 快捷键的使用可以大大提高编码效率,VS为我们内置了不少的常用快捷键组合,实际使用过程中往往会随着计算机上安装其他软件引起快捷键冲突,导致VS快捷键失效,解决办 ...

  3. 【原创】分布式之redis的三大衍生数据结构

    引言 说起redis的数据结构,大家可能对五大基础数据类型比较熟悉:String,Hash,List,Set,Sorted Set.那么除此之外,还有三大衍生数据结构,大家平时是很少接触的,即:bit ...

  4. Shiro安全框架入门笔记

    入门 1.simpleRealmTest package cn.realm; import org.apache.shiro.SecurityUtils; import org.apache.shir ...

  5. 性能调优6:Spool 假脱机调优

    SQL Server的Spool(假脱机)操作符,用于把前一个操作符处理的数据(又称作中间结果集)存储到一个隐藏的临时结构中,以便在执行过程中重用这些数据.这个临时结构都创建在tempdb中,通常的结 ...

  6. centos7下zabbix安装与部署

    1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...

  7. codeforces#580 D. Kefa and Dishes(状压dp)

    题意:有n个菜,每个菜有个兴奋值,并且如果吃饭第i个菜立即吃第j个菜,那么兴奋值加ma[i][j],求吃m个菜的最大兴奋值,(n<=18) 分析:定义dp[status][last],statu ...

  8. kattis Programming Tutors 给游客与导游匹配(二分+二分图)

    题目来源:https://vjudge.net/problem/Kattis-programmingtutors 题意: 有n个游客,n个导游,给出他们的坐标,问你怎么匹配可以使他们最大距离最小 题解 ...

  9. Python学习第三篇——访问列表部分元素

    dongman =["huoying","sishen","si wang bi ji","pan ni de lu lu xiu ...

  10. hibernate异常找不到get方法org.hibernate.PropertyNotFoundException: Could not find a getter for did in class com.javakc.hibernate.manytomany.entity.CourseEntity

    属性的get方法没找到,可能是CourseEntity类中对应属性没有get方法,如果有就看CourseEntity.hbm.xml属性名称,应该是写错了不和CourseEntity类中属性名相同,修 ...