2011-01-29 58 views
1

我需要選擇div內的任何鏈接,例如div abc ---最終解除其點擊事件。jQuery選擇器查找內部鏈接和所有元素

<div id=abc> 
<a href=google.com>first link</a> 
<a href=google.com><img> src=google.png/>second link</a> 
<a href=google.com><span>xxxxx</span> second link</a> 
</div> 

我使用下面選擇

$('#abc a') 

但如果超鏈接只有文本內部(第一上面的例子)它僅工作 - 如果我把跨度或圖像(第二和第三實施例) - 我仍然可以點擊超鏈接。換句話說,上面的jquery選擇器沒有選擇它的孩子。

什麼是正確的jQuery在上面?

非常感謝。

+0

你是什麼意思*取消綁定其點擊事件*?你之前是否綁定了點擊處理程序?或者你只是想防止默認行爲? – 2011-01-29 16:38:36

回答

4

$('#abc a')只選擇a元素。如果您想選擇a元素所有後代,這個選擇做這項工作,雖然這不是最有效的:

$('#abc a, #abc a *') 

如果你不介意在兩個步驟做,你可以把它bit更快:

var $links = $('#abc a'); 
$links.add($links.find('*')); 
+0

非常感謝馬特,你太棒了! – iwan 2011-02-01 01:38:28