博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery .filter()过滤器
阅读量:4456 次
发布时间:2019-06-08

本文共 2063 字,大约阅读时间需要 6 分钟。

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

  • .filter( selector )

    • selector
      类型:                 
      一个用于匹配元素的选择器字符串。
  • .filter( function(index) )

    • function(index)
      类型: ()
      一个函数用作测试集合中的每个元素。
      this 是当前DOM元素。
  • .filter( element )

    • element
      类型:                 
      一个或多个DOM元素来匹配当前元素集合。
  • .filter( jQuery object )        

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

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

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

1 
    2
  • list item 1
  • 3
  • list item 2
  • 4
  • list item 3
  • 5
  • list item 4
  • 6
  • list item 5
  • 7
  • list item 6
  • 8

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

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

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

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

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

1 
    2
  • list item 1 - one strong tag
  • 3
  • list item 2 - two strong tags
  • 4
  • list item 3
  • 5
  • list item 4
  • 6
  • list item 5
  • 7
  • list item 6
  • 8

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

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  2  3  4    8    9 10 11   
12
13
14
15
16
17 22 23 24

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

1  2  3  4    8    9 10 11   
12
13
14
15
16
17 25 26

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

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

 

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

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

 

 

 

 

转载于:https://www.cnblogs.com/gates/p/4303262.html

你可能感兴趣的文章
计应152班第3小组之软件初步开发(小组项目)
查看>>
Mysql多实例集群搭建
查看>>
简单的 jQuery 浮动层随窗口滚动滑动插件实例
查看>>
Android 之 Run Android Lint
查看>>
[典型漏洞分享]功能逻辑缺陷,不需要旧手机号码即可绑定新手机号码【高】...
查看>>
样条之埃特金(Aitken)逐步插值函数
查看>>
C#基础第二天
查看>>
两个栈实现队列
查看>>
【转】正则表达式
查看>>
WM消息大全
查看>>
ASP.NET中如何包含其他页面
查看>>
基于k8s的ES集群定期删除索引
查看>>
【题解】 bzoj3450 JoyOI1952 Easy (期望dp)
查看>>
SQL强化(一)保险业务
查看>>
Excel 开启多个独立窗口
查看>>
【POJ 1821】Fence
查看>>
团队开发心得
查看>>
NGUI的UICamera
查看>>
SSH环境搭建之Spring环境搭建篇
查看>>
*1038苹果和虫子
查看>>