# 1、创建、增加节点
> 方法一:父节点.appendChild(子节点);
```
<ul>
<li>林青霞</li>
<li>张曼玉</li>
<li>刘欢</li>
<li>陈冠希</li>
</ul>
```
```
<script>
//创建一个 <li>谢霆锋</li>
//创建元素类型的节点
var li = document.createElement('li');
//创建文本类型的节点
var text = document.createTextNode('谢霆锋');
//添加节点,将文本节点添加到元素节点中
li.appendChild(text); // 得到<li>谢霆锋</li>
//添加节点,将组合好的li,添加到ul中
document.querySelector('ul').appendChild(li);
</script>
```
> 方法二:父节点.insertBefore(新节点, 参照的节点);
```
/****************** insertBefore *********************/
//创建一个 <li>渣渣辉</li>
var newLi = document.createElement('li');
var newText = document.createTextNode('渣渣辉');
newLi.appendChild(newText); //得到 <li>渣渣辉</li>
//找到参照的张曼玉所在的li
var zhangmanyu = document.getElementsByTagName('li')[1];
//找到li的父节点
var ul = document.querySelector('ul');
//父节点.insertBefore(新节点, 参照的节点);
ul.insertBefore(newLi, zhangmanyu);
```
# 2、克隆节点
> 语法:原来的节点.cloneNode([true]);
```
<ul class="a" style="color:red;">
<li>鲁智深</li>
<li>张飞</li>
<li>猪八戒</li>
<li>李逵</li>
</ul>
```
```
<script>
//克隆一份ul,然后放到页面中
//先找到要克隆的ul
var oldUl = document.querySelector('ul');
//克隆一个新的ul
//var newUl = oldUl.cloneNode(); //只克隆ul标签本身,不包含里面的内容
var newUl = oldUl.cloneNode(true); //克隆ul标签并包含里面的内容
//把新的ul放到body中
document.body.appendChild(newUl);
</script>
```
# 3、替换节点
> 方法:父节点.replaceChild(新节点, 待替换的节点);
```
<ul>
<li>林黛玉</li>
<li>贾宝玉</li>
<li>薛宝钗</li>
<li>刘姥姥</li>
</ul>
```
```
<script>
// 父节点.replaceChild(新节点, 待替换的节点);
//找父节点
var ul = document.getElementsByTagName('ul')[0];
//新节点
var newLi = document.createElement('li');
var text = document.createTextNode('王熙凤');
newLi.appendChild(text);
//找到待替换的节点
var jiabaoyu = document.getElementsByTagName('li')[1];
//执行替换
ul.replaceChild(newLi, jiabaoyu);
</script>
```
# 4、删除节点
> 方法:父节点.removeChild(子节点);
HTML代码:
```
<ul>
<li>林黛玉</li>
<li>贾宝玉</li>
<li>薛宝钗</li>
<li>刘姥姥</li>
</ul>
```
> JS代码:
```
/********************** 删除节点 *************************/
//父节点.removeChild(子节点);
var ul = document.querySelector('ul');
var xiaoLiu = document.getElementsByTagName('li')[3];
ul.removeChild(xiaoLiu);
```
- 第一天
- 一、学习目标
- 二、关于JavaScript
- 三、JS语法基础
- 四、变量
- 五、常量
- 六、运算符
- 七、数组
- 八、对象
- 九、数据类型
- 第二天
- 一、昨日复习
- 二、今日目标
- 三、数据类型转换
- 四、流程控制
- 五、函数基础
- 六、作用域
- 七、标准库(内置对象)
- 八、总结
- 第三天
- 一、昨日复习
- 二、今日目标
- 三、DOM介绍
- 四、元素(标签)节点查询操作
- 五、元素(标签)节点增删改操作
- 六、设置/获取元素的css样式
- 七、事件和事件对象
- 八、键盘keyCode对照表
- 第四天
- 一、昨日复习
- 二、今日目标
- 三、DOM之属性节点操作
- 四、DOM对象的通用属性
- 五、DOM获取元素的位置
- 六、事件绑定与移除
- 七、事件对象相关属性和方法使用
- 八、案例--可编辑的表格
- 第五天
- 一、今日目标
- 二、执行流程
- 三、定时器
- 四、闭包
- 五、案例
- 第六天
- 一、昨日回顾
- 二、今日目标
- 三、正则表达式概述
- 四、入门案例
- 五、正则语法
- 六、分组/捕获和反向引用
- 七、匹配中文(utf-8编码)
- 八、环视(断言/零宽断言/正向预测/负向预测)
- 九、正则对象的属性和方法
- 十、支持正则表达式的 String 对象的方法
- 十一、案例
- 十二、PHP中的正则表达式
- 第七天
- 一、昨日回顾
- 二、正则案例
- 三、PHP中的正则表达式
- 四、正则练习
- 五、仿淘宝评分小星星
- 六、标签页效果
- 七、横向下拉菜单
- 第八天
- 一、今日目标
- 二、面向对象编程
- 三、定义对象
- 四、对象相关操作
- 五、对象在内存中的存在形式
- 六、原型对象(关键)
- 七、定义对象进阶
- 八、函数进阶
- 第九天
- 一、昨日回顾
- 二、今日目标
- 三、Object
- 四、继承
- 五、this指向总结
- 六、案例(贪吃蛇)
- 第十天
- 一、今日目标
- 二、Ajax概述
- 三、工作原理
- 四、XMLHttpRequest对象介绍
- 五、使用Ajax的步骤
- 六、细节问题
- 七、JSON
- 八、Ajax中,服务器返回json格式的数据
- 九、案例--省市县三级联动
- 第十一天
- 一、昨日回顾
- 二、今日目标
- 三、完成省市县三级联动
- 四、优化省市县三级联动
- 五、服务器返回XML格式的数据
- 六、FormData对象
- 七、跨域请求
- 八、实现跨域请求
- 第十二天
- 一、Ajax回顾
- 二、今日目标
- 三、jQuery概述
- 四、快速入门
- 五、可编辑的表格
- 六、纵向导航菜单
- 七、横向导航菜单
- 八、标签页效果
- 第十三天
- 一、学习目标
- 二、杂项
- 三、jQuery中的事件
- 四、jQuery封装的Ajax
- 五、案例 -- 无刷新的分页
- 第十四天
- 一、昨日回顾
- 二、效果
- 三、跨域请求
- 四、文档操作
- 五、插件编写
- 六、自定义插件
- 七、第三方插件