js appendChild 自带remove和append两个功能
一提到appendChild ,我们就知道是在父节点上增加子节点。
经常使用到它就是动态增加一个元素,将其加入到指定的父节点下。
其实appendChild除了这个功能之外,他还有一个功能:如果子节点不是动态创建的元素,而是在某个元素下的子元素,那么他还会自动执行一次removeChild功能。
举个栗子:将ul1下的li移动到ul2下:
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>appendChild自带removeChild功能</title>
<style type="text/css">
#ul1{
background: red;
}
#ul2{
background: greenyellow;
}
</style>
</head>
<body>
<ul id="ul1">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<button id="btn1">移动</button>
<ul id="ul2"></ul>
</body>
</html>
正常思路下的javascript:
<script type="text/javascript">
var ul1 = document.getElementById("ul1");
var ul2 = document.getElementById("ul2");
var btn1 = document.getElementById("btn1");
btn1.onclick = function(){
//获取ul1下所有li
olis = ul1.getElementsByTagName("li");
if(olis.length>0){
//获取ul1下的第一个li
var oLi = ul1.children[0];
//删除ul1下面的第一个li
ul1.removeChild(oLi);
//给ul2下面增加ul1下的第一个Li
ul2.appendChild(oLi);
}
}
</script>
去掉removeChild下的javascript:
<script type="text/javascript">
var ul1 = document.getElementById("ul1");
var ul2 = document.getElementById("ul2");
var btn1 = document.getElementById("btn1");
btn1.onclick = function(){
//获取ul1下所有li
olis = ul1.getElementsByTagName("li");
if(olis.length>0){
//获取ul1下的第一个li
var oLi = ul1.children[0];
//删除ul1下面的第一个li
//ul1.removeChild(oLi);
//给ul2下面增加ul1下的第一个Li
ul2.appendChild(oLi);
}
}
</script>
其实有没有removeChild ul1下的li效果都是一样的,因为appendChild()会先remove子元素之前位置父元素下的该元素,然后再新的父元素上添加该子元素。
js appendChild 自带remove和append两个功能的更多相关文章
- 【转】JS大总结(带实例)
JS大总结(带实例) JavaScript事务查询综合click() 对象.click() 使对象被点击.closed 对象.closed 对象窗口是否已封闭true/falseclearTimeou ...
- css文件和js文件后面带一个问号
经常看一些网站页面源代码中的css文件和js文件后面带一个问号,后面跟着一连串数字或字符,这是干什么用的? 这个方法我也用过,而且很好用?,它的作用有两个:1.作为版本号,让自己方便记忆.查找:2.作 ...
- css文件和js文件后面带一个问号----2015-1103
经常看一些网站页面源代码中的css文件和js文件后面带一个问号,后面跟着一连串数字或字符,这是干什么用的? 这个方法我也用过,而且很好用?,它的作用有两个:1.作为版本号,让自己方便记忆.查找:2.作 ...
- js+css实现带缓冲效果右键弹出菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js 图片base64转file文件的两种方式
js 图片base64转file文件的两种方式 https://blog.csdn.net/yin13037173186/article/details/83302628 //将base64转换为bl ...
- js setTimeout 传递带参数的函数的2种方式
js setTimeout 传递带参数的函数的2种方式 Created by Marydon on 2018年9月14日 1.准备工作 function sayYourName(param) { ...
- js课程 2-7 带默认参数的函数怎么写
js课程 2-7 带默认参数的函数怎么写(注意参数顺序) 一.总结 一句话总结:默认参数一定要放在最后面,而且还有注意你调用参数的时候给参数的顺序习惯.直接加个等于号就可以是默认参数.function ...
- oldboy s21day12.设计商城系统,主要提供两个功能:商品管理、会员管理。
#!/usr/bin/env python# -*- coding:utf-8 -*- # 1.写出三元运算的基本格式及作用?'''a if a>b else b''' # 2.什么是匿名函数? ...
- JS控制文本框中的密码显示/隐藏功能
<html> <head> <title>[荐]JS控制文本框中的密码显示/隐藏功能_网页代码站(www.6a8a.com)</title> <s ...
随机推荐
- BZOJ3130 [Sdoi2013]费用流 【网络流 + 二分】
题目 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案必须满足:(1)每 ...
- 刷题总结——奇怪的游戏(scoi2012)
题目: 题目描述 Blinker 最近喜欢上一个奇怪的游戏.这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻的格子,并使这两个数都加上 1.现在 Blin ...
- java.lang.Class解析
java.lang.Class 1.java.lang.Class的概念 当一个类或接口被装入的JVM时便会产生一个与之关联的java.lang.Class对象,java.lang.class类就是用 ...
- 更改navigationBar 颜色
if (IS_IOS7()) { /* iOS7 时 Navigation 颜色 */ [[UINavigationBar appearance] setBarTintColor: HexCo ...
- Scrapy学习-8-ItemLoader
ItemLoader使用 作用 方便管理维护重用xpath或css规则 实例 itemloader+图片处理 # items.py import scrapy from scrapy.loader ...
- Laravel5.1 报错:控制器不存在
Laravel5.1 报错:控制器不存在 错误提示: Class App\Http\Controllers\Api/UserController does not exist 解决: (1)检查控制器 ...
- 洛谷P1061 Jam的计数法
题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字 ...
- 修改ubuntu系统时区
ubuntu默认时区是Etc/UTC,和我们的北京时间相差8个时区,需要修改系统的时区,以下有两种简单方式修改系统时区: 1.修改/etc/timezone文件 vi /etc/timezone 把E ...
- 关于android 使用bitmap的OOM心得和解决方式
android开发,从2010年開始学习到如今的独立完毕一个app,这漫长的四年,已经经历了非常多次bug的折磨.无数次的加班训练.然而,自以为自己已经比較了解android了,却近期在一个项目上.由 ...
- jQuery Ajax Post Data Example
http://www.formget.com/jquery-post-data/ jQuery Ajax Post Data Example Fugo Of FormGet jQuery $.post ...