最近發現了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提供的最靈活的查找元素的方法。