菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
384
0

JQuery包装集size,length,index,slice,find,filter,is,children,next,nextAll,parent,parents,closest,siblings,add,end,andSelf的用法

原创
05/13 14:22
阅读数 6229

在使用Jquery包装集的知识之前首先要注意三个概念(当前包装集、新包装集、包装集内部元素)的区别。

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title>包装集size(),length,index</title>
 6     <script src="js/jquery-1.8.2.js"></script>
 7     <script type="text/javascript">
 8         $(function () {
 9             //window.alert($("tr").size());//获取tr的个数
10             //window.alert($("tr").length);//获取tr的个数
11 
12             //当执行了get之后得到的结果是一个js的元素
13             //var dom = $("tr").get(1);
14             //$(dom).css("color", "blue");
15 
16             //判断id为abc的tr在包装集的位置
17             //window.alert($("tr").index($("tr#abc")));
18 
19             //得到tbody下面第三个tr
20             //$("tbody tr:eq(2)").css("color", "blue");
21         });
22     </script>
23 </head>
24 <body>
25     <table width="700" border="1" align="center">
26         <thead>
27             <tr>
28                 <td>用户标识</td>
29                 <td>用户姓名</td>
30                 <td>用户年龄</td>
31                 <td>用户密码</td>
32             </tr>
33         </thead>
34         <tbody>
35             <tr id="abc">
36                 <td>1</td>
37                 <td>张三</td>
38                 <td>23</td>
39                 <td>abc123</td>
40             </tr>
41             <tr>
42                 <td>2</td>
43                 <td>李四</td>
44                 <td>33</td>
45                 <td>abc123</td>
46             </tr>
47             <tr>
48                 <td>3</td>
49                 <td>王五</td>
50                 <td>13</td>
51                 <td>abc123</td>
52             </tr>
53             <tr>
54                 <td>4</td>
55                 <td>赵六</td>
56                 <td>45</td>
57                 <td>abc123</td>
58             </tr>
59             <tr>
60                 <td>5</td>
61                 <td>朱七</td>
62                 <td>21</td>
63                 <td>abc123</td>
64             </tr>
65         </tbody>
66     </table>
67 </body>
68 </html>
jquery_wrap01_size_length_index
 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title>多个包装集在一起的操作(注意哪些是返回的是源包装集,哪些是返回的是新包装集。)</title>
 6     <script src="js/jquery-1.8.2.js"></script>
 7     <script type="text/javascript">
 8         $(function () {
 9             //在表达式中通过“,”可以分割多个包装集
10             //$("tbody tr:eq(2),tr#abc").css("color", "blue");
11 
12             //可以为包装集使用add方法,可以将新加入的表达式添加到源包装集中
13             //$("tbody tr:eq(2)").add("thead tr td:eq(2)").add("tr td:contains('3')").css("color", "blue");
14 
15             //not方法可以在源包装集中取消掉指定的表达式
16             //$("tr").not("tr#abc").css("color","blue");
17 
18             //获取tr中位置小于3的元素,filter表示在当前tr的包装集中进行过滤
19             //$("tr").filter("tr:lt(3)").css("color", "blue");
20 
21             //下面这个不行,因为find是在当前包装集内部进行查找
22             //$("tr").find("tr:lt(3)").css("color", "blue");
23 
24             //注意:以上都是返回获取的源包装集上的操作,以下返回的都是获取的新包装集上的操作
25 
26             //slice返回的是一个新的包装集,获取tr中的1到3形成一个新的包装集,返回的值就是新的包装集
27             //$("tr").slice(1, 3).css("color", "red");
28 
29             //获取tr中的1到3形成一个新的包装集设置颜色,原来的设置另外一个颜色
30             //$("tr").css("color", "blue").slice(1, 3).css("color", "red");
31 
32             //从包装集的内部获取相应的元素,返回的值也是新包装集
33             //$("table").find("tr#abc").css("color","blue");
34 
35         });
36     </script>
37 </head>
38 <body>
39     <table width="700" border="1" align="center">
40         <thead>
41             <tr>
42                 <td>用户标识</td>
43                 <td>用户姓名</td>
44                 <td>用户年龄</td>
45                 <td>用户密码</td>
46             </tr>
47         </thead>
48         <tbody>
49             <tr id="abc">
50                 <td>1</td>
51                 <td>张三</td>
52                 <td>23</td>
53                 <td>abc123</td>
54             </tr>
55             <tr>
56                 <td>2</td>
57                 <td>李四</td>
58                 <td>33</td>
59                 <td>abc123</td>
60             </tr>
61             <tr>
62                 <td>3</td>
63                 <td>王五</td>
64                 <td>13</td>
65                 <td>abc123</td>
66             </tr>
67             <tr>
68                 <td>4</td>
69                 <td>赵六</td>
70                 <td>45</td>
71                 <td>abc123</td>
72             </tr>
73             <tr>
74                 <td>5</td>
75                 <td>朱七</td>
76                 <td>21</td>
77                 <td>abc123</td>
78             </tr>
79         </tbody>
80     </table>
81 </body>
82 </html>
jquery_wrap02_mutil_sourcewrap_newwrap
  1 <!DOCTYPE html>
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <title>包装集slice,find,is,children,next,nextAll,parent,parents,closest,siblings</title>
  6     <script src="js/jquery-1.8.2.js"></script>
  7     <script type="text/javascript">
  8         $(function () {
  9             //slice返回的是一个新的包装集,获取tr中的1到3形成一个新的包装集,返回的值就是新的包装集
 10             //$("tr").slice(1, 3).css("color", "red");
 11 
 12             //获取tr中的1到3形成一个新的包装集设置颜色,原来的设置另外一个颜色
 13             //$("tr").css("color", "blue").slice(1, 3).css("color", "red");
 14 
 15             //从包装集的内部获取相应的元素,返回的值也是新包装集
 16             //$("table").find("tr#abc").css("color","blue");
 17 
 18             //is表示的是当前的包装集中是否有某个元素,$(table)的包装集中只有一个元素table,所以没有td
 19             //window.alert($("table").is("td:contains('用户')"));
 20             //window.alert($("td").is("td:contains('用户')"));
 21 
 22             //获取tbody中的所有tr元素,返回的也是新包装集
 23             //$("tbody").children("tr").css("color","blue");
 24 
 25             //获取tbody中的等于3的tr子元素,返回的也是新包装集
 26             //$("tbody").children("tr:eq(3)").css("color", "blue");
 27 
 28             //找到下一个子元素,只是一个元素,返回新包装集
 29             //$("tr#abc").next().css("color","blue");
 30 
 31             //找到下一个组兄弟元素,所有元素,返回新包装集
 32             //$("tr#abc").nextAll().css("color", "blue");
 33 
 34             //parent仅仅只是返回上一级的div,返回新包装集
 35             //$("#s1").parent("div").css("color","blue");
 36 
 37             //返回所有满足条件的父类节点,返回新包装集
 38             //$("#s1").parents("div").css("color", "blue");
 39 
 40             //closest是从自己开始往上找,返回找到的第一个满足条件的节点,返回新包装集
 41             //$("#s1").closest("div").css("color", "blue");
 42 
 43             //返回第3个tr的所有兄弟节点,但不包含自己(第3个tr),返回新包装集
 44             //$("tr:eq(2)").siblings("tr").css("color", "blue");
 45 
 46             //返回第3个tr的所有兄弟节点,但不包含自己(第3个tr),判断兄弟节点中有没有tr id=abc元素,返回新包装集
 47             //window.alert($("tr:eq(2)").siblings("tr").is("tr#abc"));
 48         });
 49     </script>
 50 </head>
 51 <body>
 52     <div>
 53         abc
 54         <div id="d1">
 55             def
 56             <div>
 57                 123
 58                 <span id="s1">456</span>
 59             </div>
 60         </div>
 61     </div>
 62     <table width="700" border="1" align="center">
 63         <thead>
 64             <tr>
 65                 <td>用户标识</td>
 66                 <td>用户姓名</td>
 67                 <td>用户年龄</td>
 68                 <td>用户密码</td>
 69             </tr>
 70         </thead>
 71         <tbody>
 72             <tr id="abc">
 73                 <td>1</td>
 74                 <td>张三</td>
 75                 <td>23</td>
 76                 <td>abc123</td>
 77             </tr>
 78             <tr>
 79                 <td>2</td>
 80                 <td>李四</td>
 81                 <td>33</td>
 82                 <td>abc123</td>
 83             </tr>
 84             <tr>
 85                 <td>3</td>
 86                 <td>王五</td>
 87                 <td>13</td>
 88                 <td>abc123</td>
 89             </tr>
 90             <tr>
 91                 <td>4</td>
 92                 <td>赵六</td>
 93                 <td>45</td>
 94                 <td>abc123</td>
 95             </tr>
 96             <tr>
 97                 <td>5</td>
 98                 <td>朱七</td>
 99                 <td>21</td>
100                 <td>abc123</td>
101             </tr>
102         </tbody>
103     </table>
104 </body>
105 </html>
jquery_wrap03_slice_find_is_children_next_nextAll_parent_parents_closest_siblings
 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>包装集-链式编程-add,end,andSelf,find,filter</title>
 6     <script src="js/jquery-1.8.2.js"></script>
 7     <script type="text/javascript">
 8         $(function () {
 9 
10             //将第三个tr之外的所有tr的color设置为blue,backgroundcolor设置为green
11             //$("tr:eq(2)").siblings("tr").css("color", "blue").css("background-color", "green");
12 
13             //将第三个tr之外的所有tr的color设置为blue,backgroundcolor设置为green,在将第三个tr设置为backgroundcolor设置为red。使用end()方法返回上一个包装集
14             //$("tr:eq(2)").siblings("tr").css("color", "blue").css("background-color", "green").end().css("background-color","red");
15 
16             //复制user2的table中的tbody内容,添加到user1中
17             //$("#user2 tbody").clone().appendTo("#user1");
18 
19             //复制user2的table中的tbody内容,添加到user1中,同时给user1设置color=blue
20             //$("#user2 tbody").clone().appendTo("#user1").css("color", "blue");
21 
22             //复制user2的table中的tbody内容,添加到user1中,同时又添加了偶数行的tr后,在设置color=blue
23             //$("#user2 tbody").clone().appendTo("#user1").add("tr:even").css("color", "blue");
24 
25             //filter实在当前的包装集(user1)中进行过滤,它是找不到tr:even
26             //$("#user2 tbody").clone().appendTo("#user1").filter("tr:even").css("color", "blue");
27 
28             //find实在当前的包装集(user1)的内部进行查找,所以它是能找到tr:even
29             //$("#user2 tbody").clone().appendTo("#user1").find("tr:even").css("color", "blue");
30 
31             //给user1的偶数行tr设置color=blue之后,再给原包装集user2设置color=blue,需要使用end()得到上一个包装集。使用两次end().end()就能找到user2的包装集了。
32             //$("#user2 tbody").clone().appendTo("#user1").find("tr:even").css("color", "blue").end().end().css("color", "blue");
33 
34             //上面这个例子如果只使用了一次end(),那么它会找到clone()之后的包装集
35             //$("#user2 tbody").clone().appendTo("#user1").find("tr:even").css("color", "blue").end().css("color", "blue");
36 
37             //andSelf()把当前所有的包装集合并在一起,设置color=blue
38             //$("#user2 tbody").clone().appendTo("#user1").andSelf().find("tr:even").css("color", "blue");
39         });
40     </script>
41 </head>
42 <body>
43     <table id="user1" width="700" border="1" align="center"></table>
44     <table width="700" border="1" align="center" id="user2">
45         <thead>
46             <tr>
47                 <td>用户标识</td>
48                 <td>用户姓名</td>
49                 <td>用户年龄</td>
50                 <td>用户密码</td>
51             </tr>
52         </thead>
53         <tbody>
54             <tr id="abc">
55                 <td>1</td>
56                 <td>张三</td>
57                 <td>23</td>
58                 <td>abc123</td>
59             </tr>
60             <tr>
61                 <td>2</td>
62                 <td>李四</td>
63                 <td>33</td>
64                 <td>abc123</td>
65             </tr>
66             <tr>
67                 <td>3</td>
68                 <td>王五</td>
69                 <td>13</td>
70                 <td>abc123</td>
71             </tr>
72             <tr>
73                 <td>4</td>
74                 <td>赵六</td>
75                 <td>45</td>
76                 <td>abc123</td>
77             </tr>
78             <tr>
79                 <td>5</td>
80                 <td>朱七</td>
81                 <td>21</td>
82                 <td>abc123</td>
83             </tr>
84         </tbody>
85     </table>
86 </body>
87 </html>
jquery_wrap04_add_end_andSelf_find_filter
  1 <!DOCTYPE html>
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <title>包装集-链式编程-find,filter,仅在当前包装集过滤,和在包装集内部的元素上进行查找的区别</title>
  6     <script src="js/jquery-1.8.2.js"></script>
  7     <script type="text/javascript">
  8         $(function () {
  9             //查询出了两个table包装集,一个为user1的table一个为user2的table,此时可以过滤得到users这个table
 10             //$("table").filter("table#user1").css("color", "blue");
 11 
 12             //如果想过滤tr的话,那是不行的,因为filter只能对当前包装集操作,而不能对当前包装集内部的元素进行操作。
 13             //$("table").filter("tr").css("color", "blue");
 14 
 15             //解决方法1是增加tr这个包装集到源包装集中
 16             //$("table").add("tr").filter("tr").css("color", "blue");
 17 
 18             //解决方法2是使用find方法在包装集内部的元素中进行查找
 19             $("table").find("tr").css("color", "blue");
 20         });
 21     </script>
 22 </head>
 23 <body>
 24     <table id="user1" width="700" border="1" align="center">
 25         <thead>
 26             <tr>
 27                 <td>用户标识</td>
 28                 <td>用户姓名</td>
 29                 <td>用户年龄</td>
 30                 <td>用户密码</td>
 31             </tr>
 32         </thead>
 33         <tbody>
 34             <tr id="abc">
 35                 <td>1</td>
 36                 <td>张三</td>
 37                 <td>23</td>
 38                 <td>abc123</td>
 39             </tr>
 40             <tr>
 41                 <td>2</td>
 42                 <td>李四</td>
 43                 <td>33</td>
 44                 <td>abc123</td>
 45             </tr>
 46             <tr>
 47                 <td>3</td>
 48                 <td>王五</td>
 49                 <td>13</td>
 50                 <td>abc123</td>
 51             </tr>
 52             <tr>
 53                 <td>4</td>
 54                 <td>赵六</td>
 55                 <td>45</td>
 56                 <td>abc123</td>
 57             </tr>
 58             <tr>
 59                 <td>5</td>
 60                 <td>朱七</td>
 61                 <td>21</td>
 62                 <td>abc123</td>
 63             </tr>
 64         </tbody>
 65     </table>
 66     <table width="700" border="1" align="center" id="user2">
 67         <thead>
 68             <tr>
 69                 <td>用户标识</td>
 70                 <td>用户姓名</td>
 71                 <td>用户年龄</td>
 72                 <td>用户密码</td>
 73             </tr>
 74         </thead>
 75         <tbody>
 76             <tr id="abc">
 77                 <td>1</td>
 78                 <td>张三</td>
 79                 <td>23</td>
 80                 <td>abc123</td>
 81             </tr>
 82             <tr>
 83                 <td>2</td>
 84                 <td>李四</td>
 85                 <td>33</td>
 86                 <td>abc123</td>
 87             </tr>
 88             <tr>
 89                 <td>3</td>
 90                 <td>王五</td>
 91                 <td>13</td>
 92                 <td>abc123</td>
 93             </tr>
 94             <tr>
 95                 <td>4</td>
 96                 <td>赵六</td>
 97                 <td>45</td>
 98                 <td>abc123</td>
 99             </tr>
100             <tr>
101                 <td>5</td>
102                 <td>朱七</td>
103                 <td>21</td>
104                 <td>abc123</td>
105             </tr>
106         </tbody>
107     </table>
108 </body>
109 </html>
jquery_wrap05_filter_wrap_find_wrapinnerelement

 

发表评论

0/200
384 点赞
0 评论
收藏
为你推荐 换一批