• 【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】


    一、JQuery中的DOM操作。

      什么是DOM:DOM是一中和浏览器、平台、语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件。DOM简称文档对象模型,是Document Oject Model的简写形式。

    二、内部插入和外部插入

      1.内部插入

        (1)append:向调用该方法的元素的内部的结尾处追加内容      

            a.append(content),插入之后内容为:<a标签头>a原来的内容+content<a标签尾>

        (2)appendTo:将调用的元素自身追加到指定的元素中的内部结尾处。

            a.appendTo(content),插入之后的内容为:<content标签头>content原来的内容+a<content标签尾>

        (3)prepend:向调用该方法元素的内部的开头处添加内容。

            a.prepend(content),查入之后的内容为:<a标签头>content+a内容<a标签尾>

        (4)prependTo:将调用该方法元素自身添加到指定元素的内部开头处。

            a.prependTo(content),插入之后的内容为:<content标签头>a+content原来的内容<content标签尾>

        (5)完整代码说明

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <head>
     4     <title>ddd</title>
     5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
     7     <style type="text/css">
     8              #foo1{
     9                  background-color: #CCC;
    10              }
    11             
    12      </style>
    13      <!--引入jquery的js库-->    
    14     </head>
    15      
    16     <body>
    17         <input type="button" value="测试append" id="b1"> 
    18         <input type="button" value="测试appendTo" id="b2"> 
    19         <input type="button" value="测试prepend" id="b3"> 
    20         <input type="button" value="测试prependTo" id="b4"> 
    21          <ul id="city">
    22               <li id="bj" name="beijing">北京</li>
    23              <li id="tj" name="tianjin">天津</li>
    24              <li id="cq" name="chongqing">重庆</li>
    25          </ul>
    26          
    27          
    28           <ul id="love">
    29               <li id="fk" name="fankong">反恐</li>
    30              <li id="xj" name="xingji">星际</li>
    31          </ul>
    32         
    33         <span id="foo1">Hello1</span> 
    34        
    35     </body>
    36     <script language="JavaScript">
    37     //*   append(content) :向每个匹配的元素的内部的结尾处追加内容
    38             $("#b1").click(function(){
    39                 $("#bj").append($("#foo1"));
    40             });
    41     //*   appendTo(content) :将每个匹配的元素追加到指定的元素中的内部结尾处
    42     
    43             $("#b2").click(function(){
    44                 $("#foo1").appendTo($("#bj"));
    45             });
    46     //*   prepend(content):向每个匹配的元素的内部的开始处插入内容
    47     
    48             $("#b3").click(function(){
    49                 $("#foo1").prepend($("#bj"));
    50             });
    51     //*   prependTo(content) :将每个匹配的元素插入到指定的元素内部的开始处
    52     
    53             $("#b4").click(function(){
    54                 $("#foo1").prependTo($("#bj"));
    55             });
    56     </script>
    57    
    58 </html>
    Insert_Inside.html

      2.外部插入

        (1)after(content):在每个调用的元素之后插入内容

        (2)before(content):在每个调用的元组之前插入内容

        (3)insertAfter(content):把调用该方法的元素自身插入到内容之后。

        (4)insertBefore(content):把调用该方法的元素自身插入到内容之前。

        (5)完整代码说明

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <head>
     4     <title>ddd</title>
     5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
     7     <style type="text/css">
     8              div,span{
     9                  140px;
    10                 height: 140px;
    11                 margin: 20px;
    12                 background: #9999CC;
    13                 border: #000 1px solid;
    14                 float:left;
    15                 font-size: 17px;
    16                 font-family:Roman;
    17             }
    18             
    19             div.mini{
    20                  30px;
    21                 height: 30px;
    22                 background: #CC66FF;
    23                 border: #000 1px solid;
    24                 font-size: 12px;
    25                 font-family:Roman;
    26             }
    27             
    28             div.visible{
    29                 display:none;
    30             }
    31             p{
    32                 background-color: #CCC;
    33                 200px;
    34             }
    35      </style>
    36      <!--引入jquery的js库-->    
    37     </head>
    38      
    39     <body>
    40     <input type="button" value="测试after" id="b1"> 
    41         <input type="button" value="测试before" id="b2"> 
    42         <input type="button" value="测试insertAfter" id="b3"> 
    43         <input type="button" value="测试insertBefore" id="b4"> 
    44          <ul id="city">
    45               <li id="bj" name="beijing">北京</li>
    46              <li id="tj" name="tianjin">天津</li>
    47              <li id="cq" name="chongqing">重庆</li>
    48          </ul>
    49         
    50          <p  id="p3">I would like to say: p3</p>
    51          
    52          <p  id="p2">I would like to say: p2</p>
    53         
    54          <p  id="p1">I would like to say: p1</p>
    55        
    56     </body>
    57 <script language="JavaScript">
    58 //*  after(content) :在每个匹配的元素之后插入内容
    59     $("#b1").click(function(){
    60         $("#bj").after($("#p2"));
    61     });
    62 //*  before(content):在每个匹配的元素之前插入内容 
    63     $("#b2").click(function(){
    64         $("#bj").before($("#p2"));
    65     });
    66 //*  insertAfter(content):把所有匹配的元素插入到另一个、指定的元素集合的后面 
    67     $("#b3").click(function(){
    68         $("#bj").insertAfter($("#p2"));
    69     });
    70 //*  insertBefore(content) :把所有匹配的元素插入到另一个、指定的元素元素集合的前面 
    71     $("#b4").click(function(){
    72         $("#bj").insertBefore($("#p2"));
    73     });
    74 </script>
    75    
    76 </html>
    Outer_Insert.html

      3.内部插入和外部插入的比较

        (1)都不仅能够将新创建的DOM元素插入到文档之中,还能够对原有的DOM元素进行移动。

        (2)内部插入插入到标签之中,外部插入插入到标签外面,这是内部插入和外部插入的本质区别。

    三、查找节点

      1.查找属性节点可以使用JQuery对象的选择器来完成,详情请见上一篇随笔。

      2.使用JQuery对象的attr()方法可以得到指定属性的值。

      3.可以使用JQuery对象的text()方法得到指定文本节点的文本。

    四、节点的CRUD操作

      1.创建节点

        (1)使用JQuery的工厂函数$()可以创建新节点,但是创建新节点的时候需要传入节点的标签名。

        (2)创建文本节点就是在创建节点的时候直接将文本写出来。

        (3)创建节点应当注意使用标准的XHTML格式,特别是需要注意闭合标签。

        (4)示例:$("<a></a>");这样就创建了一个a节点。

        (5)text()方法和arr()方法同时具有设置和获取的功能。

        (6)创建节点实例

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <head>
     4     <title>ddd</title>
     5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6         <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
     7     <style type="text/css">
     8              div,span{
     9                  140px;
    10                 height: 140px;
    11                 margin: 20px;
    12                 background: #9999CC;
    13                 border: #000 1px solid;
    14                 float:left;
    15                 font-size: 17px;
    16                 font-family:Roman;
    17             }
    18             
    19             div.mini{
    20                  30px;
    21                 height: 30px;
    22                 background: #CC66FF;
    23                 border: #000 1px solid;
    24                 font-size: 12px;
    25                 font-family:Roman;
    26             }
    27             
    28             div.visible{
    29                 display:none;
    30             }
    31      </style>
    32      <!--引入jquery的js库-->
    33     
    34     </head>
    35      
    36     <body>
    37                 
    38         
    39          <ul id="city">
    40               <li id="bj" name="beijing">北京</li>
    41          </ul>
    42         
    43     </body>
    44 <script language="JavaScript">
    45     //在city下增加<li id="tj" name="tianjin">天津</li>节点
    46     $li=$("<li></li>");
    47     //<li></li>
    48     //设置属性<li id="tj" name="tianjin"></li>
    49     $li.attr("name","tianjin");
    50     //添加文本节点<li id="tj" name="tianjin">天津</li>
    51     $li.text("天津");
    52     //添加到city的下
    53     $("#city").append($li);
    54 </script>
    55    
    56 </html>
    CreateNewNode.html

        (7)核心代码

    <script language="JavaScript">
        $li=$("<li></li>");
        $li.attr("name","tianjin");
        $li.text("天津");
        $("#city").append($li);
    </script>

      2.删除节点

        (1)可以使用remove()方法和empty()方法删除,但是remove方法删除的是连同标签都删除了,empty方法只是删除了内容。

        (2)remove方法:当某个节点调用remove方法之后,该节点及所包含的所有后代节点将会全部被删除,返回值是一个指向已经被删除的节点的引用;如果带有参数,则就是对删除的对象进行筛选,如果满足条件则删除,否则不删除。

        (3)empty方法:清空节点。清空元素的后代所有节点,但是不包含元素自身。该方法不带有参数。

        (4)删除节点实例

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <head>
     4     <title>ddd</title>
     5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
     7     <style type="text/css">
     8              div,span{
     9                  140px;
    10                 height: 140px;
    11                 margin: 20px;
    12                 background: #9999CC;
    13                 border: #000 1px solid;
    14                 float:left;
    15                 font-size: 17px;
    16                 font-family:Roman;
    17             }
    18             
    19             div.mini{
    20                  30px;
    21                 height: 30px;
    22                 background: #CC66FF;
    23                 border: #000 1px solid;
    24                 font-size: 12px;
    25                 font-family:Roman;
    26             }
    27             
    28             div.visible{
    29                 display:none;
    30             }
    31      </style>
    32      <!--引入jquery的js库-->
    33     
    34     </head>
    35      
    36     <body>
    37          <ul id="city">
    38               <li id="bj" name="beijing">北京</li>
    39              <li id="tj" name="tianjin">天津</li>
    40              <li id="cq" name="chongqing">重庆</li>
    41          </ul>
    42         <p class="hello">Hello</p> how are <p>you?</p> 
    43     </body>
    44 <script language="JavaScript">
    45    //删除<li id="bj" name="beijing">北京</li>
    46    //$("#bj").remove();
    47    //删除所有的子节点   清空元素中的所有后代节点(不包含属性节点).
    48    $("#bj").empty();
    49 </script>
    50    
    51 </html>
    Delete_Nodes.html

        (5)核心代码

    //删除<li id="bj" name="beijing">北京</li>
       //$("#bj").remove();
       //删除所有的子节点   清空元素中的所有后代节点(不包含属性节点).
       $("#bj").empty();

      3.复制节点

        (1)使用方法clone()和clone(true)

        (2)clone和clone(true)方法的区别:前者克隆的时候不会带有触发函数等,后者则将监听事件等一并复制走了。

        (3)实例

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <head>
     4     <title>ddd</title>
     5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6         <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
     7     <style type="text/css">
     8              div,span{
     9                  140px;
    10                 height: 140px;
    11                 margin: 20px;
    12                 background: #9999CC;
    13                 border: #000 1px solid;
    14                 float:left;
    15                 font-size: 17px;
    16                 font-family:Roman;
    17             }
    18             
    19             div.mini{
    20                  30px;
    21                 height: 30px;
    22                 background: #CC66FF;
    23                 border: #000 1px solid;
    24                 font-size: 12px;
    25                 font-family:Roman;
    26             }
    27             
    28             div.visible{
    29                 display:none;
    30             }
    31      </style>
    32      <!--引入jquery的js库-->
    33     </head>
    34     <body>
    35         <button>保存</button>    
    36         <br>    <br>    <br>    
    37         <p>段落</p>
    38     </body>
    39     <script language="JavaScript">
    40         $("button").click(function(){
    41             window.alert("单击了button按钮!");
    42         });
    43         //button增加事件
    44         //克隆button 追加到p上 ,但事件不克隆
    45         //clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有任何行为
    46        /*  $back=$("button").clone();
    47         $("p").append($back); */
    48         //克隆button 追加到p上 ,但事件也克隆
    49         //clone(true): 复制元素的同时也复制元素中的的事件 
    50         $back=$("button").clone(true);
    51         $("p").append($back);
    52     </script>
    53 </html>
    Clone_Nodes.html

        (4)核心代码

     //克隆button 追加到p上 ,但事件不克隆
            //clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有任何行为
           /*  $back=$("button").clone();
            $("p").append($back); */
            //克隆button 追加到p上 ,但事件也克隆
            //clone(true): 复制元素的同时也复制元素中的的事件 
            $back=$("button").clone(true);
            $("p").append($back);

      4.替换节点

        (1)替换节点可以使用replaceWith方法和replaceAll方法

        (2)replaceWith方法:被替换者主动调用

        (3)replaceAll方法:替换者主动调用,实际上和replaceWith方法相对。

        (4)实例

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <html>
     3   <head>
     4     <title>ddd</title>
     5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
     6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
     7     <style type="text/css">
     8              div,span{
     9                  140px;
    10                 height: 140px;
    11                 margin: 20px;
    12                 background: #9999CC;
    13                 border: #000 1px solid;
    14                 float:left;
    15                 font-size: 17px;
    16                 font-family:Roman;
    17             }
    18             
    19             div.mini{
    20                  30px;
    21                 height: 30px;
    22                 background: #CC66FF;
    23                 border: #000 1px solid;
    24                 font-size: 12px;
    25                 font-family:Roman;
    26             }
    27             
    28             div.visible{
    29                 display:none;
    30             }
    31      </style>
    32      <!--引入jquery的js库-->
    33     </head>
    34     <button>按钮</button>
    35     <body>
    36         <p>段落</p>
    37         <p>段落</p>
    38         <p>段落</p>
    39     </body>
    40 <script language="JavaScript">
    41 
    42         //$("button")用 <p>tttttttt</P>替换
    43        /*  $newp=$("<p></p>");
    44         $newp.text("按钮将会被替换");
    45         $("button").replaceWith($newp); */
    46         
    47         // p 用  <button>保存</button>  替换
    48         $("<button>保存</button>").replaceAll($("p"));
    49 </script>
    50 </html>
    ReplaceNode.html

        (5)核心代码

    //$("button")用 <p>tttttttt</P>替换
           /*  $newp=$("<p></p>");
            $newp.text("按钮将会被替换");
            $("button").replaceWith($newp); */
            
            // p 用  <button>保存</button>  替换
            $("<button>保存</button>").replaceAll($("p"));

    五、属性操作

      1.attr()方法:可以设置属性的值或者获取属性的值。

      2.实际上JQuery中有很多方法都是既能够设置值也能够修改值的:attr()、html()、text()、val()、height()、width()、css()等。

  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/4776387.html
Copyright © 2020-2023  润新知