jquery .filter()过滤器

述: 筛选元素集合中匹配表达式 或 通过传递函数测试的 那些元素集合。

  • .filter( selector )

    • selector

      类型: Selector

      一个用于匹配元素的选择器字符串。

  • .filter( function(index) )

    • function(index)

      类型: Function()

      一个函数用作测试集合中的每个元素。this 是当前DOM元素。

  • .filter( element )

    • element

      类型: Element

      一个或多个DOM元素来匹配当前元素集合。

  • .filter( jQuery object )

    • jQuery object

      类型: Object

      现有jQuery对象,用于进一步筛选当前元素集合。

如果一个jQuery对象表示一个DOM元素的集合,.filter()方法构造了一个新的jQuery对象的子集。所提供的选择器是对每个元素进行测试;这个选择器匹配的所有元素将包含在结果中。

考虑一个页面上一个简单的列表:

1 <ul>
2   <li>list item 1</li>
3   <li>list item 2</li>
4   <li>list item 3</li>
5   <li>list item 4</li>
6   <li>list item 5</li>
7   <li>list item 6</li>
8 </ul>

我们可以在列表项目上设置此方法:

1 $(‘li‘).filter(‘:even‘).css(‘background-color‘, ‘red‘);

该调用的结果是1,3,和5项的背景变为红色,因为他们匹配这个选择器(记得:even 和 :odd使用基于0的索引)。

Using a Filter Function(使用过滤函数)

这种方法的第二种形式允许我们使用一个函数,而不是一个选择器来过滤元素,对于每个元素,如果函数返回true ,该元素将被包含在筛选集合中;否则,将被排除在外。假设我们有一个HTML片段:

1 <ul>
2   <li><strong>list</strong> item 1 - one strong tag</li>
3   <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span></li>
4   <li>list item 3</li>
5   <li>list item 4</li>
6   <li>list item 5</li>
7   <li>list item 6</li>
8 </ul>

我们可以选择列表项,然后过滤它们的内容:

1 $(‘li‘).filter(function(index) {
2   return $(‘strong‘, this).length == 1;
3 }).css(‘background-color‘, ‘red‘

此代码只有第一个列表项将改变,因为它仅包含一个<strong>标签。过滤函数中的this是依次指向每个DOM元素。过滤函数中传入的 index 参数代表匹配的 jQuery 对象集合中 DOM 元素的索引。

我们可以利用过滤函数中的 index 参数,该参数是从 0 开始的索引值,此索引值代表未经过滤的匹配元素集合中的元素位置:

1 $(‘li‘).filter(function(index) {
2   return index % 3 == 2;
3 }).css(‘background-color‘, ‘red‘);

这对代码将会导致第三和第六列表项背景变为红色,因为它使用模运算符( % )选择每一个项目和index值,除以3时,余2

例子:

Example: 改变所有 div 的颜色,然后为含有 "middle" 样式的 div 添加边框。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <style>
 5   div { width:60px; height:60px; margin:5px; float:left;
 6         border:2px white solid;}
 7   </style>
 8   <script src="http://code.jquery.com/jquery-latest.js"></script>
 9 </head>
10 <body>
11   <div></div>
12   <div class="middle"></div>
13   <div class="middle"></div>
14   <div class="middle"></div>
15   <div class="middle"></div>
16   <div></div>
17 <script>
18     $("div").css("background", "#c8ebcc")
19             .filter(".middle")
20             .css("border-color", "red");
21 </script>
22
23 </body>
24 </html>

Example: C改变所有 div 的颜色,然后为第二个 div (index == 1) 及 id 为 "fourth" 的 div 添加边框。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <style>
 5   div { width:60px; height:60px; margin:5px; float:left;
 6         border:3px white solid; }
 7   </style>
 8   <script src="http://code.jquery.com/jquery-latest.js"></script>
 9 </head>
10 <body>
11   <div id="first"></div>
12   <div id="second"></div>
13   <div id="third"></div>
14   <div id="fourth"></div>
15   <div id="fifth"></div>
16   <div id="sixth"></div>
17 <script>
18     $("div").css("background", "#b4b0da")
19             .filter(function (index) {
20                   return index == 1 || $(this).attr("id") == "fourth";
21                 })
22             .css("border", "3px double red");
23
24 </script>
25 </body>
26 </html>

Example: 选择所有的 div,并使用 DOM 元素进行筛选,过滤出 id 为 "unique" 的元素。


1

$("div").filter( document.getElementById("unique") )

Example: 选择所有的 div,并使用 jQuery 对象进行筛选,过滤出 id 为 "unique" 的元素。


1

$("div").filter( $("#unique") )

时间: 2024-10-12 23:37:38

jquery .filter()过滤器的相关文章

filter 过滤器从数组中选择一个子集

输入过滤器可以通过一个管道字符和一个过滤器添加到指令中,该过滤器后面跟着一个冒号:冒号后面是一个模型名称. <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible"content="

estore商城案例(三)------Filter过滤器:自动登录&amp;权限管理

前面写好了用户登录\注册\添加商品的功能模块.下面写一下对于这些功能模块的相关过滤器---自动登录与权限管理: 一.自动登录: 业务逻辑是这样的:jsp登录页面有个“自动登录选项”,如果登录这勾选了,那么在serlvet程序中则会额外的生成一个保存用户名和密码的cookie,然后每次用户向服务器发送请求时,Filter过滤器都会先判断用户的登录状态(session),如果已经登录那么无需做出受任何操作直接放行,如果没有登录(无session),那么这时体现自动登录功能作用的时候到了,先获取自动登

Java Web总结十九Filter过滤器

一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,Web开发人员通过Filter技术,对Web服务器管理的所有Web资源:例如Jsp,Servlet,静态图片文件或静态HTML文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.自动登录.压缩响应信息等一些高级功能. Servlet API中提供了一个Filter接口,开发Web应用时,如果编写的Java类实现了这个接口,则把这个Java类称之为过滤器Filter.通过

SSH2——filter过滤器

概述: 过滤器是Servlet2.3以上新增加的一个功能,其技术也是非常强大的.通过Filter技术可以对WEB服务器的文件进行拦截,从而实现一些特殊的功能.在JSP开发应用中也是必备的技能之一.Filter可以改变一个request(请求)和修改一个response(响应).Filter不是一个Servlet,它不能产生一个response,它能够在一个requsst到达Servlet之前预处理request,也可以在离开Servlet时处理response. 原理: 当Web容器接受到一个对

Filter过滤器简单应用( 接口访问控制 )

一.描述 在提供安卓.IOS客户端接口时,可以在登陆接口分配Session给客户端,用于判断其他接口是否是合法访问,以避免将所有的接口都暴露在web中可以由路径直接访问.但是最近的一个项目中的移动接口并没有给客户端分配Session,所以所有的接口都可以通过路径直接访问,这种方式会存在一定的风险性,只能通过接口对参数进行更精确的验证.一般情况下为方便管理会将所有接口单独放到WebRoot下单独一个文件夹目录下如WebRoot/appreq.改目录下的接口可直接被访问,如:http://local

Filter 过滤器

Filter 过滤器 原文链接:http://tianweili.github.io/blog/2015/01/26/java-filter/ 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 它主要用于对用户请求进行预处

Filter过滤器(1)

Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 其顺序图如下(Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过Filt

Filter(过滤器)

一.Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作. 1.Filter快速入门 1.1.步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方法 doFilter方法是真正过滤的. 3. 在web.xml文件中配置  注意:在Filter的doFilter方法内如果没有执行chain.doFilter(request,response) 那么资源是不会被访问到的. 1.2.FilterChain FilterChain 是 servlet

javaweb之Filter过滤器详解

快速入门 1.新建一个类,实现Filter接口 2.实现doFilter()方法,打印一句话,来证明能够进行拦截 3.在web.xml中进行配置(参照Servlet配置) 4.访问一个页面,看看能不能拦截 例子: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.serv