2011-01-29 105 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