第4章:jQuery的DOM操作一
CH04-JQuery的DOM操作一
本章目标
- 掌握jQuery操作DOM节点——创建、插入、替换、复制、包裹、删除节点的使用
- 掌握jQuery遍历DOM节点的使用
一、jQuery 中的 DOM 操作
1、DOM
DOM(Document Object Model—文档对象模型):是 W3C(万维网联盟)的标准,可以将任何HTML、XML文档描绘成一个多层次的节点树。例:HTML DOM 节点树
树中的所有节点均可通过 JavaScript 进行操作。包括节点修改,创建或删除等。
2、DOM操作分为三类
- DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById()
- HTML-DOM:用于处理HTML文档,如document.forms
- CSS-DOM:用于操作CSS,如element.style.color=”green”
JavaScript用于对(x)html文档进行操作,它对这三类DOM操作都提供了支持
3、jQuery 中的 DOM 操作分类
jQuery对JavaScript中的DOM操作进行了封装,使用起来将更加简便
jQuery中的DOM操作可分为:
- 节点操作
- 节点遍历
- 样式操作
- 内容及Value属性值操作
- 节点属性操作
- CSS-DOM操作
二、操作DOM节点
1、创建节点
创建如下无序列表(节点操作公共HTML代码):
1 | <script src="js/jquery.min.js"></script> |
注:动态创建的新元素节点不会被自动添加到文档中, 而是需要使用其他方法将其插入到文档中
2、插入子节点
元素内部插入子节点
在course元素中插入node节点
效果图:
1 | <script src="js/jquery.min.js"></script> |
在course元素中前置插入node节点
效果图:
1 | <script src="js/jquery.min.js"></script> |
3、插入同辈节点
元素外部插入同辈节点
在course元素后插入node节点
效果图:
1 | <script src="js/jquery.min.js"></script> |
在course元素前插入node节点
效果图:
1 | <script src="js/jquery.min.js"></script> |
3、复制和替换节点
replaceWith() 用于替换某个节点
效果图:
1 | <script src="js/jquery.min.js"></script> |
clone()用于复制某个节点
效果图:
1 | <script src="js/jquery.min.js"></script> |
clone:将克隆生成的副本移动到新的位置
参数true表示:连同节点中的事件一起克隆
4、包裹删除节点
wrap():把所有匹配的元素用其他元素标记包裹起来。也就是给它增加一个父元素
创建一个div节点,在每一个li元素外面包裹div
效果图:
1 | <script src="js/jquery.min.js"></script> |
unwrap():移出元素的父元素,取消wrap()方法的效果
效果图:
1 | <script src="js/jquery.min.js"></script> |
wrapInner():将每一个匹配的元素的子内容(包括文本节点)用其他标记包裹起来
例:给所有匹配的li元素内部增加一个a包裹
效果图:
1 | <script src="js/jquery.min.js"></script> |
5、删除节点
获取course列表中的第一个li节点,并给该节点添加一个点击事件
效果图:
1 | <script src="js/jquery.min.js"></script> |
jQuery提供了三种删除节点的方法
**remove()**:删除整个节点(连同节点的事件及附加数据一同删除)
效果图:
1
2
3
4
5
6
7
8
9
10<script src="js/jquery.min.js"></script>
<script>
$(function(){
//点击删除 删除course索引为0的li元素
$("#rem").click(function () {
$first.remove();
});
})
</script>
<input type="button" id="rem" value="删除remove" />恢复该节点后,事件丢失
效果图:
1
2
3
4
5
6
7
8
9
10<script src="js/jquery.min.js"></script>
<script>
$(function(){
//点击恢复 可以恢复刚才删除的li元素
$("#rem1").click(function () {
$("#course").prepend($first);
});
})
</script>
<input type="button" id="rem1" value="恢复remove" />**detach()**:删除整个节点,保留元素的绑定事件、附加的数据
**empty()**:清空节点中的内容(属性、事件依然保留)
三、遍历DOM节点
1、遍历子元素
children()方法:用来获取元素的所有直接子元素
获取course列表中所有子元素
效果图:
1 | <script src="js/jquery.min.js"></script> |
设置course列表中class为li的子元素的字体颜色
效果图:
1 | <script src="js/jquery.min.js"></script> |
2、遍历后代元素
find() 方法:获取元素的后代元素
1 | <ul> |
设置ul下的后代span的样式
效果图:
1 | <script src="js/jquery.min.js"></script> |
3、遍历同辈元素
jQuery可以获取紧邻其后、紧邻其前和位于该元素前与后的所有同辈(兄弟)元素
四、课后作业
1.点击“添加”按钮,将数据添加到表格中
2.使用jQuery完成数据删除
3.使用jQuery完成数据编辑功能
4.使用jQuery完成数据编辑,点击“编辑”按钮,时,显示如下,默认一次只能编辑一行数据