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

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

在使用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="http://www.mamicode.com/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下面第三个tr20             //$("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="http://www.mamicode.com/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="http://www.mamicode.com/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="http://www.mamicode.com/js/jquery-1.8.2.js"></script> 7     <script type="text/javascript"> 8         $(function () { 9 10             //将第三个tr之外的所有tr的color设置为blue,backgroundcolor设置为green11             //$("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=blue20             //$("#user2 tbody").clone().appendTo("#user1").css("color", "blue");21 22             //复制user2的table中的tbody内容,添加到user1中,同时又添加了偶数行的tr后,在设置color=blue23             //$("#user2 tbody").clone().appendTo("#user1").add("tr:even").css("color", "blue");24 25             //filter实在当前的包装集(user1)中进行过滤,它是找不到tr:even26             //$("#user2 tbody").clone().appendTo("#user1").filter("tr:even").css("color", "blue");27 28             //find实在当前的包装集(user1)的内部进行查找,所以它是能找到tr:even29             //$("#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=blue38             //$("#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="http://www.mamicode.com/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

 

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