2012-12-22 51 views
9

圖像我一個click功能綁定到一個鏈接:jQuery選擇鏈路沒有內部

$("body").on("click", "a", function() { 
    //do something 
}); 

現在我正在尋找一個選擇,如果該鏈接不包含圖片代碼將只匹配。所以類似於a:not(img),但img是子元素。

我該怎麼做?

回答

11

試試這個錨:

$("body").on("click", "a:not(a:has(img))", function() { 
    //do whatever you want here 
}); 
+2

在調用':has'之前提供一個選擇器,我會更具體一些,所以':has'不會嘗試匹配頁面中的每個元素'a:不是(a:有(img))'應該提供更好的表現 –

+0

@FabrícioMatté感謝您的建議 – Eli

1

您可以使用nothas過濾沒有img

Live Demo

$("body").on("click", "a:not(a:has(img))", function() { 
    //do something 
    alert(""); 
}); 

+0

你剛剛忘了'a',但是第一個答案包括'has'的+1。 –

+0

謝謝@FabrícioMatté我無法讓你忘記? – Adil

+0

在':not':'$(「body」)。on(「click」,「a:not(a:has(img))」'之前缺少'a',否則您會將處理程序委託給所有元素是不鏈接圖像,而不是鏈接,沒有圖像:http://jsfiddle.net/kuWk6/2/。':P' –

1

試試這個

$('a:not(:has(>img))').click(function(){ 
    alert('click'); 
})​;