从jquery的过滤器.filter()方法想到的

  最近发现了jquery的.filter()方法,这真是一个很强大的方法,最强大之处在于,他可以接受一个函数作为参数,然后根据函数的返回值判断,如果返回值是true,这个元素将被保留,如果返回值是false,这个元素将被剔除。这就是jquery选择器的过滤器。

  空说无用,我们展示一下

  

复制代码 代码如下:

  <body>

  <p>你好啊,今天及多大了啊</p>

  <p><span>为什么要告诉你</span></p>

  </body>

  如果我们要选择有一个<span>子元素的<p>元素,平常我都是这么写的

  

复制代码 代码如下:

  $("p>span").parent();

  现在借助于.filter()我们可以写成这个样子:

  

复制代码 代码如下:

  $("p").filter(function(index){

  return $(this).find("span").size();

  });

  虽然看起来有些麻烦,但是他提供了我们一种极其强大的自定义查找元素的功能,我们可以传递一个函数,然后借助jquery的隐式迭代,来实现查找。

  这是目前我看到的jquery提供的最灵活的查找元素的方法。