jQuery中的筛选(六)
1. eq(index|-index)
获取当前链式操作中第N个jQuery对象,返回jQuery对象,当参数大于等于0时为正向选取,比如0代表第一个,1代表第二个。当参数为负数时为反向选取,比如-1为倒数第一个。
$("p").eq(1)
2. first(), 获取第一个元素
$('li').first()
3. last(), 获取最后一个元素
$('li').last()
4. hasClass(class), 检查当前的元素是否含有某个特定的类,如果有,则返回true
$(this).hasClass("protected")
5. filter(expr|obj|ele|fn), 筛选出与指定表达式匹配的元素集合
这个方法用于缩小匹配的范围。用逗号分隔多个表达式。
参数说明:
- expr:Stirng, 字符串值,包含供匹配当前元素集合的选择器表达式
- obj:现有的jQuery对象,以匹配当前的元素
- ele:一个用于匹配元素的DOM元素
- function(index):Function,个函数用来作为测试元素的集合。它接受一个参数index,这是元素在jQuery集合的索引。在函数, this指的是当前的DOM元素。
<p>Hello</p><p>Hello Again</p><p class="selected">And Again</p> $("p").filter(".selected") //结果: <p class="selected">And Again</p> //$("p").filter(".selected, :first")
6. is(expr|obj|ele|fn), 根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true
参数说明:
- expr:Stirng, 字符串值,包含供匹配当前元素集合的选择器表达式
- obj:现有的jQuery对象,以匹配当前的元素
- ele:一个用于匹配元素的DOM元素
- function(index):Function,个函数用来作为测试元素的集合。它接受一个参数index,这是元素在jQuery集合的索引。在函数, this指的是当前的DOM元素。
<form><input type="checkbox" /></form> $("input[type='checkbox']").parent().is("form") //结果true
7. map(callback), 将一组元素转换成其他数组(不论是否是元素数组)
你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用'$.map()'来方便的建立。
<p><b>Values: </b></p> <form> <input type="text" name="name" value="John"/> <input type="text" name="password" value="password"/> <input type="text" name="url" value="http://ejohn.org/"/> </form> $("p").append( $("input").map(function(){ return $(this).val(); }).get().join(", ") ); 结果:<p>John, password, http://ejohn.org/</p>
8. has(expr|ele), 保留包含特定后代的元素,去掉那些不含有指定后代的元素
.has()方法将会从给定的jQuery对象中重新创建一组匹配的对象。提供的选择器会一一测试原先那些对象的后代,含有匹配后代的对象将得以保留。
参数说明:
- expr:String,一个选择器字符串
- element:一个DOM元素
//给含有ul的li加上背景色 $('li').has('ul').css('background-color', 'red');
9. not(expr|ele|fn), 从匹配元素的集合中删除与指定表达式匹配的元素
参数说明:
- expr:String,一个选择器字符串
- element:一个DOM元素
- function(index):Function, 一个用来检查集合中每个元素的函数。this是当前的元素
//从p元素中删除带有 select 的ID的元素 $("p").not( $("#selected")[0] )
10. slice(start, [end]), 选取一个匹配的子集
参数说明:
- start:Integer,开始选取子集的位置。第一个元素是0.如果是负数,则可以从集合的尾部开始选起
- end:Integer,结束选取自己的位置,如果不指定,则就是本身的结尾。
//选择第一个p元素 $("p").slice(0, 1).wrapInner("<b></b>");
11. children([expr]), 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合
通过可选的表达式来过滤所匹配的子元素。注意:parents()将查找所有祖辈元素,而children()只考虑子元素而不考虑所有后代元素。
$("div").children()
$("div").children(".selected")
12. find(expr|obj|ele), 搜索所有与指定表达式匹配的元素
参数说明:
- expr:用于查找的表达式
- obj:一个用于匹配元素的jQuery对象
- ele:一个DOM元素
$("p").find("span")
13. next([expr]), 取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合
//找到每个段落的后面紧邻的同辈元素 <p>Hello</p><p>Hello Again</p><div><span>And Again</span></div> $("p").next() //结果 <p>Hello Again</p>, <div><span>And Again</span></div>
14. parent([expr]), 取得一个包含着所有匹配元素的唯一父元素的元素集合
<div><p>Hello</p><p>Hello</p></div> $("p").parent(); //结果 <div><p>Hello</p><p>Hello</p></div> //$("p").parent(".selected");
15. prev([expr]), 取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合
//找到每个段落紧邻的前一个同辈元素。 <p>Hello</p><div><span>Hello Again</span></div><p>And Again</p> $("p").prev() //结果 <div><span>Hello Again</span></div>
16. siblings([expr]), 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合
//找到每个div的所有同辈元素 <p>Hello</p><div><span>Hello Again</span></div><p>And Again</p> $("div").siblings(); //结果 <p>Hello</p>, <p>And Again</p>
17. contents(), 查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容
//查找所有文本节点并加粗 <p>Hello <a href="http://ejohn.org/">John</a>, how are you doing?</p> $("p").contents().not("[nodeType=1]").wrap("<b/>"); //结果 <p><b>Hello</b> <a href="http://ejohn.org/">John</a>, <b>how are you doing?</b></p>