專業鋁門窗、鍛造門設計及安裝 價格便宜、品質好、設計佳,值得您信賴 | 30多年專業技術團隊 幫您輕鬆搞定房子抓漏防水等惱人問題 |
[JQuery] jQuery Selector |
房東:阿凱 發表時間:2012-01-15 | [檢舉] |
jQuery的Selector種類繁多,神奇又好用,但在某些情境下還是可能找不到100%符合需求的。像是:contains()可以用來比對"文字內容包含某個字串",但如果我們要的是"文字內容完全等於某個字串"或是"文字內容完全等於某個字串,但不用分大小寫",要怎麼辦? 先假設情境是要找出所有文字內容恰等於"Darkthread"的<a>,例如: <a href="..." mce_href="...">Darkthread</a>,如果用$("a:contains(\'Darkthread\')")則連<a href="..." mce_href="...">Fake Darkthread</a>也會被算進來。 一個簡單且直覺的方法是利用filter函數: 但有更巧妙的做法--Selector不合用? 那就自己寫一個! jQuery在架構上已預留可自行擴充Selector的空間,要擴充很簡單。說到這裡,大家對jQuery的景仰是否已如濤濤江水? 假設我們對:contains()的"包含"特性不滿意,我們打算生出另一個:exact(\'...\')的Selector,限定文字內容要完全相符才算數,只需要一行Code: 接著就可以用$("a:exact(\'Darkthread\')")來找出文字完全吻合Darkthread的<a>了。 回頭來看一下要自訂Selector的設定語法 其中filterName是要自訂的Selector Filter名稱,filterEvalExpression的字串內容則是一個邏輯運算式,用以傳回true或false,而在運算式中,我們有幾個預設變數可用:
有興趣深入研究的人可以參考jquery.js裡的Filter寫法,應該很快就能照著研發出自己想要的Selector。 至於不分大小寫的比對,相信難不倒大家吧: 【2009-01-31更新】jQuery 1.3中無法直接以字串表示過濾邏輯,需寫成$.extend($.expr[":"], { exact: function(a, i, m) { return (a.textContent || a.innerText || jQuery(a).text() || \'\') == m[3]; } }); 詳細說明 |
廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! 廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 |
1 樓住戶:小白 發表時間:2012-01-31 | [檢舉] |