jquery中filter(fn)给出的官方说明是:
筛选出与指定函数返回值匹配的元素集合
这个函数内部将对每个对象计算一次 (正如 '$.each'). 如果调用的函数返回false则这个元素被删除,否则就会保留。
这个说明没有问题,可是给出的例子却有问题。例子是
HTML 代码:
<p><ol><li>Hello</li></ol></p><p>How are you?</p>
jQuery 代码:
$("p").filter(function(index) {
return $("ol", this).length == 0;
});
return $("ol", this).length == 0;
});
结果:
[ <p>How are you?</p> ]
可是大家在试的时候会发现,<p>中是不让放<ol>的,在一些浏览器会报错。
我在自己的一个程序中,用到了filter(fn)这个方法。我就把我使用的例子放出来。
我要做的功能其实很简单,就是要把一个页面中所有的<div>内容显示出来。这里面有些<div>的内容是动态加载的。