js进阶 11-18 jquery中操作选择器的方法有哪些

一、总结

一句话总结:add()、addBack()、end()

 

1、add()方法是干嘛的,举一例?

将add()方法后选择器选择的jquery对象加到add()方法之前选择器之中

43                 $("p").css("background","#ccc").add('li').css("color","red")


 

2、addBack()方法是干嘛的,举一例?

将上一个选择器选择的jquery对象插入到当前选择器中

46                 $(".red").nextAll().addBack().css("background-color", "red");


 

 

3、end()方法是干嘛的,举一例?

结束当前选择器,返回到上一个选择器

51                 $('li').filter(':even').css("background-color", "red").end().filter(':odd').css("background-color", "orange");


 

 

 

二、jquery中操作选择器的方法有哪些

1、相关知识



  • add() 方法将元素添加到匹配元素的集合中。
  • addBack()添加堆栈中元素集合到当前集合,一个选择性的过滤选择器。
  • end() 结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。
  • map() 把当前匹配集合中的每个元素传递给函数,返回值是 jQuery 封装的数组。
  • closest()方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上。 closest和parents的主要区别是:1,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找;2,前者逐级向上查找,直到发现匹配的元素后就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用给定的选择器表达式去过滤。
  • offsetParent()获得用于定位的第一个父元素。即:返回父元素中第一个其position设为relative或者absolute的元素。此方法仅对可见元素有效。

 

2、代码



1 <!DOCTYPE html>
2 <html lang="en">
3 <style>
4 </style>
5 <head>
6 <meta charset="UTF-8">
7 <title>演示文档</title>
8 <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
9 <style>
10 li{
11 margin-top: 5px;width: 150px;
12 }
13 </style>
14 </style>
15 </head>
16 <body>
17 <div>
18 <p>段落1</p>
19 <p>段落2</p>
20 <p>段落3</p>
21 </div>
22 <ol>
23 <li>列表项0</li>
24 <li>列表项1</li>
25 <li>列表项2</li>
26 <li class="red">列表项3</li>
27 <li>列表项4</li>
28 <li>列表项5</li>
29 </ol>
30 <input id="btn1" type="button" value='add'>
31 <input id="btn2" type="button" value='addBack'>
32 <input id="btn3" type="button" value='end'>
33 <input id="btn4" type="button" value='map'>
34 <input id="btn5" type="button" value='closest'>
35 <input id="btn6" type="button" value='offsetParent'>
36 <script type="text/javascript">
37 $(function(){
38 $('#btn1').click(function(){
39 //这里的add()相当于和的意思
40 // $("p").css("color","red")
41 // $("li").css("color","red")
42 // $("p,li").css("color","red")
43 $("p").css("background","#ccc").add('li').css("color","red")
44 })
45 $('#btn2').click(function(){
46 $(".red").nextAll().addBack().css("background-color", "red");
47 })
48 $('#btn3').click(function(){
49 // $('li').filter(':even').css("background-color", "red");
50 // $('li').filter(':odd').css("background-color", "orange");
51 $('li').filter(':even').css("background-color", "red").end().filter(':odd').css("background-color", "orange");
52 })
53 })
54 </script>
55 </body>
56 </html>