定义和用法
filter() 方法返回符合一定条件的元素。
该方法让您规定一个条件。不符合条件的元素将从选择中移除,符合条件的元素将被返回。
该方法通常用于缩小在被选元素组合中搜索元素的范围。
提示:filter() 方法是与
not() 方法相对的。
语法
$(selector).filter(criteria,function(index))
参数描述
criteria可选。规定要从被选元素组合中返回的选择器表达式、jQuery 对象、一个或多个元素。
提示:如需规定多个条件,请使用逗号分隔。
function(index)可选。为集合中的每个元素规定要运行的函数。如果返回 true,则保留元素,否则元素将被移除。
index - 集合中元素的 index 位置。
注意: this 是当前的 DOM 元素。
详细说明
如果给定表示 DOM 元素集合的 jQuery 对象,.filter() 方法会用匹配元素的子集构造一个新的 jQuery 对象。所使用的选择器会测试每个元素;所有匹配该选择器的元素都会包含在结果中。
请思考下面这个拥有简单列表的页面:
<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li></ul>我们可以向这个列表项集合应用该方法:
$('li').filter(':even').css('background-color', 'red');
亲自试一试使用过滤函数
使用该方法的第二个形式是,通过函数而不是选择器来筛选元素。对于每个元素,如果该函数返回 true,则元素会被包含在已筛选集合中;否则,会排除这个元素。
请看下面这段稍显复杂的 HTML 片段:
<ul> <li><strong>list</strong> item 1 - one strong tag</li> <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span></li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li></ul>我们可以选取这些列表项,然后基于其内容来筛选它们:
$('li').filter(function(index) { return $('strong', this).length == 1;}).css('background-color', 'red');
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。