最近发现了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提供的最灵活的查找元素的方法。