JS实例—DOM的增删改

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* *{
margin:0;
padding:0;
}*/
#total{
width:400px;
border:1px solid black;
margin:0 auto;
}
#city li{
list-style: none;
float: left;
margin-left:20px;
margin-bottom: 20px;
border:1px solid black;
background-color: #ff6700;
}
/*解决高度塌陷问题*/
.clearfix::before,.clearfix::after{
Content:"";
Display:table;
Clear:both
}
.btnList button{
margin-top: 20px;
width:300px;
}
</style>
</head>
<body>
<div id="total" class="clearfix">
<div id="inner">
<p>你喜欢哪个城市?</p>
<ul id="city">
<li id="bj">北京</li>
<li>上海</li>
<li>天津</li>
<li>杭州</li>
</ul>
</div>
</div>
<div class="btnList">
<div><button id="btn01"> 创建一个“广州”节点添加到#city下</button></div>
<div><button id="btn02">将“广州”节点插入到#bj前面</button></div>
<div><button id="btn03">使用“广州”节点替换#bj节点</button></div>
<div><button id="btn04">删除#bj节点</button></div>
<div><button id="btn05">读取#city内的HTML代码</button></div>
<div><button id="btn06">设置#bj内的HTML代码</button></div>
<div><button id="btn07">向city中添加广州-方法1</button></div>
<div><button id="btn08">向city中添加广州-方法2</button></div>
</div>
</body>
</html>
<script>
function myClick(idStr,fun) {
var btn=document.getElementById(idStr);
btn.onclick=fun;
}
//创建一个“广州”节点添加到#city下
myClick("btn01",function () {
//创建广州节点<li>广州</li>
//创建li元素节点
var li=document.createElement("li");
//创建文本节点
var cityText=document.createTextNode("广州");
//将广州子节点添加到li中
li.appendChild(cityText);
//获取id为city的节点
var city=document.getElementById("city");
//将广州添加到city下
city.appendChild(li);
}); //将“广州”节点插入到#bj前面
//先绑定按钮2
myClick("btn02",function () {
//创建一个广州节点
var li=document.createElement("li");
var cityText=document.createTextNode("广州");
li.appendChild(cityText);
//获取北京的节点id,必须父节点调用
// 用法: 旧节点的父节点.insertBefore(新节点,旧节点)
var bj=document.getElementById("bj");
var city=document.getElementById("city");
city.insertBefore(li,bj);
}); //使用“广州”节点替换#bj节点
myClick("btn03",function () {
//创建一个广州节点
var li=document.createElement("li");
var cityText=document.createTextNode("广州");
li.appendChild(cityText);
//获取北京节点和其父节点
var bj=document.getElementById("bj");
var city=document.getElementById("city");
//替换北京节点
// 用法: 旧节点的父节点.replaceChild(新节点,旧节点)
city.replaceChild(li,bj);
}); // 删除#bj节点
myClick("btn04",function () {
var bj=document.getElementById("bj");
var city=document.getElementById("city");
// 用法: 父节点.removeChild(删除子节点);
//方法一:city.removeChild(bj);
//方法二: 子节点.parentNode.removeChild(子节点); 子节点的父辈节点
bj.parentNode.removeChild(bj);
}); // 读取#city内的HTML代码
myClick("btn05",function () {
var city=document.getElementById("city");
alert(city.innerText);
}); //设置#bj内的HTML代码
myClick("btn06",function () {
var bj=document.getElementById("bj");
bj.innerHTML="东京";
}); //向city添加广州,使用innerHTML也可以进行DOM的增删改
//反观第一种方法,这种方法更好,但动作太大,所有节点重新设置
myClick("btn07",function () {
var city=document.getElementById("city");
city.innerHTML+="<li>广州</li>";
}); //向city添加广州 折中的方法---推荐使用!!!!!
myClick("btn08",function () {
var city=document.getElementById("city");
var li=document.createElement("li");
//向li中设置文本
li.innerHTML="广州";
//将li添加到city中
city.appendChild(li);
});
</script>
JS实例—DOM的增删改的更多相关文章
- js中script的上下放置区别 , Dom的增删改创建
回顾 javascript分为三部分: 1.ECMAScript5.0 es6(阮一峰) es7 es8 es6中有类的概念 声明变量 var let(es6中语法) 内置函数 Date Math.r ...
- 第 9 章 DOM 的增删改查
DOM 的增删改查 本文不会详细讲解,只是简单提及知识要点,详细可以参考<dom高级编程>. 1. document.write document.write('<h1>创建节 ...
- Python之实例对象的增删改查
#实例对象的增删改查p1 = ChinesePeople('wangyue')#print (p1.__dict__) #查看实例对象的属性#print (p1.name)(p1.play_ball( ...
- JavaScript之DOM的增删改查
JavaScript的组成: 1. ECMAScript-语法规范 2. Web APIs(浏览器提供的工具) (1).BOM (浏览器对象模型) (2).DOM (文档对象模型) 今天就来讲讲DOM ...
- 【基础篇】js对本地文件增删改查
[基础篇] js对本地文件增删改查--增 js对本地文件增删改查--删 js对本地文件增删改查--改 js对本地文件增删改查--查
- 【基础篇】js对本地文件增删改查--查
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- 【基础篇】js对本地文件增删改查--改
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- 【基础篇】js对本地文件增删改查--删
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
- 【基础篇】js对本地文件增删改查--增
前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...
随机推荐
- 关于Java8的精心总结
前言 最近公司里比较新的项目里面,看到了很多关于java8新特性的用法,由于之前自己对java8的新特性不是很了解也没有去做深入研究,所以最近就系统的去学习了一下,然后总结了一篇文章第一时间和大家 ...
- 跳过Google开机设置/验证/向导
Google 的开机设置向导,亦或称作开机验证,对于刷机党来说最熟悉不过了.一般情况下,刷类原生或是原生系统,再刷 Gapps,开机就需要进行一些 Google 验证.这些验证,与国内的手机厂商所设置 ...
- 在ASP.NET中,<%= %>和<%# %>有什么区别
asp.net中<%#%>出现在repeater gridview等控件中.用以绑定控件的datasource asp.net中<%%>的意思是 上运行c#或者vb代码,比如: ...
- 大型Java进阶专题(九) 设计模式之总结
前言 关于设计模式的文章就到这里了,学习这门多设计模式,你是不是有这样的疑惑,发现很多设计模式很类似,经常会混淆某些设计模式.这章节我们将对设计模式做一个总结,看看各类设计模式有什么区别.需要注意 ...
- js原型、原型链
之前有说过继承,在js中没有类,所以在new的后面,放的是构造函数,在构造函数中有一个属性prototype,js的继承全靠它. 在js中对象的类型有很多,常见的就是普通对象,和函数对象,在对象中都会 ...
- C#程序员装机必备软件及软件地址
装机必备 Visio2010 下载 http://gd.ddooo.com/visio2010_12530.rar Office 安装包 http://xz.cncrk.com:8080/soft/k ...
- 关于页面布局中,如何让一个div水平和垂直居中的五个方案
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Go 中读取命令参数的几种方法总结
前言 对于一名初学者来说,想要尽快熟悉 Go 语言特性,所以以操作式的学习方法为主,比如编写一个简单的数学计算器,读取命令行参数,进行数学运算. 本文讲述使用三种方式讲述 Go 语言如何接受命令行参数 ...
- scrapy中选择器用法
一.Selector选择器介绍 python从网页中提取数据常用以下两种方法: lxml:基于ElementTree的XML解析库(也可以解析HTML),不是python的标准库 BeautifulS ...
- 手写 promies
简单的 Promies 封装 function Promiss(fn) { this.state = 'pending' //当前状态 this.value = null // 成功执行时得到的数据 ...