欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery知识回顾二(详细版)——2020.07.10

程序员文章站 2022-03-13 18:12:48
一、jQuery中的DOM操作DOM(DocumentObjectModel——文档对象模型):一种与浏览器,平台,语言无关的接口,使用该接口可以轻松的访问野蛮中所有的标准组件。DOM操作的分类:——DOMCore:DOMCore并不专属于JavaScript,如何一种支持DOM的程序设计语言都可以使用它,它的用途并非仅限于处理网页,也可以用来处理任何一种是用标记语言编写出来的文档,例如:XML。——HTMLDOM:使用JavaScript和DOM为HTML文件编写脚本时,有许多专......

一、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