jQuery知识回顾二(详细版)——2020.07.10
一、jQuery中的DOM操作
DOM(Document Object Model——文档对象模型):一种与浏览器,平台,语言无关的接口,使用该接口可以轻松的访问野蛮中所有的标准组件。
DOM操作的分类:
——DOM Core:DOM Core并不专属于JavaScript,如何一种支持DOM的程序设计语言都可以使用它,它的用途并非仅限于处理网页,也可以用来处理任何一种是用标记语言编写出来的文档,例如:XML。
——HTML DOM:使用JavaScript和DOM为HTML文件编写脚本时,有许多专属于HTML-DOM的属性。
——CSS-DOM:针对于CSS操作,在JavaScript中,CSS-DOM主要用于获取和设置style对象的各种属性。
1、查找节点
——查找属性节点:通过jQuery选择器完成。
——操作属性节点:查找到所需元素后,可以调用jQuer对象的attr()方法来获取它的各种属性值。
——操作文本节点:通过text()方法。
2、创建节点:
使用jQuery的工厂函数 $():$(html);会根据传入的html标记字符串创建一个DOM对象,并把这个DOM对象包装成一个jQuery对象返回。
注意:
——动态创建的新元素节点不会被自动添加到文档中,而是需要使用其他的方法将其插入到文档中;
——当创建单个元素时,需注意闭合标签和使用标签的XHTML格式。例如创建一个<p>元素,可以使用$("<p/>")或$("<p></p>"),但不能使用$("<p>")或$("<P>")。
创建文本节点就是在创建元素节点时直接把文本内容写出来;创建属性节点也是在创建元素节点时一起创建。
3、插入节点(1)
动态创建HTML元素并没有实际用处,还需要将新创建的节点插入到文档中,即成为文档中某个节点的子节点。
方法 |
描述 |
---|---|
append() | 向每个匹配的元素的内容的结尾处追加内容 |
appendTo() | 将每个匹配的元素追加到指定的元素中的内容的结尾处 |
prepend() | 向每个匹配元素的内容的开始处插入内容 |
prependTo() | 向每个匹配的元素插入到指定的元素内部的开始处 |
4、删除节点
remove():从DOM中删除所有匹配的元素,传入的参数用于根据jQuery表达式来筛选元素。当某个节点用 remove() 方法删除后,该节点所包含的所有后代节点将被同时删除,这个方法的返回值是一个指向已被删除的节点的引用。
empty():清空节点—清空元素中的所有后代节点(不包括属性节点)。
5、替换节点
replaceWith():将所有匹配的元素都替换为指定的HTML元素或者DOM元素。
replaceAll():颠倒了的replaceWith()方法。
注意:若在替换之前,已经在元素上绑定了事件,替换后原先绑定的时间会与原先的元素一起消失。
6、复制节点
clone():克隆匹配的DOM元素,返回值为克隆后的副本,但此时复制的新节点不具有任何行为。
clone(true):复制元素的同时也复制元素中的事件。
7、包裹节点
wrap():将指定节点用其他标记包裹起来,该方法对于需要在文档中插入额外的结构化标记非常有用,而且不会破坏原始文档的语义。
wrapAll():将所有匹配的元素用一个元素来包裹,而wrap()方法是将所有的元素进行单独包裹。
wrapInner():将每一个匹配的元素的子内容(包括文本节点)用其他结构化标记包裹起来。
二、属性操作
attr():获取属性和设置属性
—当为该方法传递一个参数时,即为某元素的获取指定属性
—当为该方法传递两个参数时,即为某元素设置指定属性的值
jQuery值有很多方法都是一个函数实现获取和设置,例如:attr()、html()、text()、val()、height()、width()、css()等。
removeAttr():删除指定元素的指定属性。
1、设置和获取HTML,文本和值
①读取和设置某个元素中的HTML内容:html()。该方法可以用于XHTML,但不能用于XML文档。
②读取和设置某个元素中的文本内容:text()。该方法既可以用于XHTML也可以用于XML文档。
③读取和设置某个元素中的值:val()。该方法类似JavaScript中的value属性,对于文本框,下拉列表框,单选框该方法可以返回元素的值(多选框只能返回第一个值)。如果为多选下拉列表框,则返回一个包含所有选择值的数组。
小结:
1.使用jQuery进行DOM操作
1)新建(元素、属性、文本)节点:直接使用$()包装即可,返回值是一个jQuery对象
var $zouziwei = $("<li id='zouziwei'>zouziwei</li>");
2)把节点插入到文档中:
-append、appendTo:把节点zouziwei插入为节点city的最后一个子节点
$("<li id='zouziwei'>zouziwei</li>").appendTo($("#city"));
$("#city").append("<li id='zouziwei'>zouziwei</li>");
-prepend、prependTo:
$("<li id='zouziwei'>zouziwei</li>").prependTo($("#city"));
$("#city").prepend("<li id='zouziwei'>zouziwei</li>");
-before、insertBefore:
$("<li id='zouziwei'>zouziwei</li>").insertBefore($("#bj"));
$("#bj").before("<li id='zouziwei'>-zouziwei-</li>");
-after、insertAfter:
$("<li id='zouziwei'>zouziwei</li>").insertAfter($("#bj"));
$("#bj").after("<li id='zouziwei'>-zouziwei-</li>");
3).删除节点:
$("#bj").remove();
4).清空节点:
$("#game").empty();
5).克隆节点:
$("#bj").clone(true)
.attr("id", "bj2")
.insertAfter($("#rl"));
6).替换节点:
//1.创建一个<li>zouziwei</li>,替换#city的最后一个li子节点
$("<li>zouziwei</li>").replaceAll("#city li:last");
//2.创建一个<li>-zouziwei-</li>节点
//替换#city的第二个li子节点
$("#city li:eq(1)").replaceWith($("<li>-zouziwei-</li>"));
//3.互换#rl和#bj,#rl和#bj还有移动的功能
//$("#bj").replaceWith($("#rl"));
//节点的互换需要先克隆节点
alert(1);
var $bj2 = $("#bj").clone(true);
var $rl = $("#rl").replaceWith($bj2);
alert(2);
$("#bj").replaceWith($rl);
7).wrap,wrapAll,wrapInner:了解
8).val()、html()、attr()、width()、height()等兼具有读写的方法
//读取某个节点的html内容
alert($("#city").html());
$("#city").html("<li id='dj'>zouziwei</li>");
//设置某个节点的html内容
$("#city").html("<li>zouziwei</li>");
2.技术点之外:
1).jQuery对象可以进行隐式迭代:$("p").click(function(){...});
为选取的所有的p节点都添加了click响应函数 jQuery对象本身就是一个DOM对象的数组
2).在jQuery中显示迭代:使用each()方法
3).在响应函数中,this是一个DOM对象,若想使用jQuery对象的方法,需要把其包装成为jQuery对象:
使用$()把this包装起来
4).defaultValue:DOM对象的属性,可以获取表单元素的默认值
5).通过val()为radio赋值:val参数中也应该使用数组,使用一个值不起作用
6).val()不能直接获取checkbox被选中的值,若直接获取只能得到第一个被选择的值,
因为$(":checkbox[name='c']:checked").val()得到的是一个数组,而使用val()方法只能获取数组元素的第一个值
若希望打印被选择的所有值,需要使用each遍历
alert($(":checkbox[name='c']:checked").val());
7).//1.同JS的响应函数一样,jQuery对象的响应函数若返回false,可取消指定元素的默认行为
//比如submit、a等
//2.val()方法,相当于attr("value"),获取表单元素的value属性值
//3.$.trim(str):可以去除str的前后空格
//4.jQuery对象的方法的连缀:调用一个方法的返回值还是调用的对象,
//于是可以在调用方法之后依然调用先前的那个对象的其他方法
8).$.trim(str):可以去除str前后空格
9).jQuery对象的方法的连缀:调用一个方法的返回值还是调用的对象,于是可以在调用的方法后面依然调用先前的那个对象的其他方法
$("#addEmpButton").click(function(){
$("<tr></tr>").append("<td>" + $("#name").val() + "</td>")
.append("<td>" + $("#email").val() + "</td>")
.append("<td>" + $("#salary").val() + "</td>")
.append("<td><a href='deleteEmp?id=xxx'>Delete</a></td>")
.appendTo("#employeetable tbody")
.find("a")
.click(function(){
return removeTr(this);
});
});
10).find():查找子节点,返回值为子节点对应的jQuery对象
//获取$tr的第一个td节点的文本节点的文本值
var $trNode = $(aNode).parent().parent();
var textContent = $trNode.find("td:first").text();
textContent = $.trim(textContent);
本文地址:https://blog.csdn.net/weixin_44977914/article/details/107283150
下一篇: 在单雄信死后,他的妻儿都是什么样的下场?