<!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的增删改的更多相关文章

  1. js中script的上下放置区别 , Dom的增删改创建

    回顾 javascript分为三部分: 1.ECMAScript5.0 es6(阮一峰) es7 es8 es6中有类的概念 声明变量 var let(es6中语法) 内置函数 Date Math.r ...

  2. 第 9 章 DOM 的增删改查

    DOM 的增删改查 本文不会详细讲解,只是简单提及知识要点,详细可以参考<dom高级编程>. 1. document.write document.write('<h1>创建节 ...

  3. Python之实例对象的增删改查

    #实例对象的增删改查p1 = ChinesePeople('wangyue')#print (p1.__dict__) #查看实例对象的属性#print (p1.name)(p1.play_ball( ...

  4. JavaScript之DOM的增删改查

    JavaScript的组成: 1. ECMAScript-语法规范 2. Web APIs(浏览器提供的工具) (1).BOM (浏览器对象模型) (2).DOM (文档对象模型) 今天就来讲讲DOM ...

  5. 【基础篇】js对本地文件增删改查

    [基础篇] js对本地文件增删改查--增 js对本地文件增删改查--删 js对本地文件增删改查--改 js对本地文件增删改查--查

  6. 【基础篇】js对本地文件增删改查--查

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  7. 【基础篇】js对本地文件增删改查--改

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  8. 【基础篇】js对本地文件增删改查--删

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  9. 【基础篇】js对本地文件增删改查--增

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

随机推荐

  1. iframe子页面取父页面的变量问题

    iframe包含的子页面,想获取父页面的变量,不能直接获取到. 但是子页面可以访问父页面的方法  window.parent.parentFunctionName();  利用这一点,可以将父页面的变 ...

  2. WPF入门教程(一)---基础

    这篇主要讲WPF的开发基础,介绍了如何使用Visual Studio 2013创建一个WPF应用程序. 首先说一下学习WPF的基础知识: 1) 要会一门.NET所支持的编程语言.例如C#. 2) 会一 ...

  3. git 缓存密码 unable to access... 403错误

    如果输入了 git config credential.helper 命令之后还是出现了osxkeychain, store 或者 cache 等,说明 git 的配置还是没有被清空,我参考了stac ...

  4. springboot(二)配置SpringBoot支持自动装载Servlet

    Servlet详解:https://blog.csdn.net/yanmiao0715/article/details/79949911 Web 技术成为当今主流的互联网 Web 应用技术之一,而 S ...

  5. 一个使用android相机的例子,二维码必须用相机

    https://blog.csdn.net/feiduclear_up/article/details/51968975

  6. ELK5.6.4+Redis+Filebeat+Nginx(CentOS7.4)

    下载地址: Elasticsearhc: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz ...

  7. random模块(验证码小程序)

    #!/usr/bin/env python #-*- coding:utf-8 -*- import random li=[] for i in range(6): #循环几次,就代表生成几位的验证码 ...

  8. Android仿支付宝高顶部功能条伸缩动画

    参考:https://blog.csdn.net/aqi00/article/details/72621176

  9. QDC day4

    图论. 强连通图 与 弱连通图 . 最短路 .dij 不支持负权.显然 值得一提的是利用斐波那契堆m+nlogn . 一张 边权都是2的整数次幂 考虑 一下直接 结构体维护这个2的整次幂数组但比大小 ...

  10. Hadoop学习之NCDC天气数据获取

    期望目的 下载<Hadoop权威教程>里用到的NCDC天气数据,供后续在此数据基础上跑mapred程序. 操作过程 步骤一.编写简单的shell脚本,下载数据文件到本地文件系统 已知NCD ...