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

Iはセレクタ

$('#abc a') 

下に使用するが、ハイパーリンクのみ(上記第1例)内のテキストを持っている場合にのみ動作する - 私はスパン又は画像(第二及び第三の実施例)を置く場合 - 私はまだハイパーリンクをクリックすることができます。言い換えれば、上記のjqueryセレクタはその子を選択しませんでした。

上記の正しいjQueryは何ですか?

ありがとうございます。

+0

クリックイベント*を解除するとどういう意味ですか?前にクリックハンドラーをバインドしていますか?または、デフォルトの動作を防止したいだけですか? –

答えて

4

$('#abc a')は、a要素のみを選択します。次の2つのステップでそれをやって気にしない場合、あなたはそれにすることができ

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

:あなたはa要素すべての子孫を選択したい場合は、それが最も効率的ではないのですけれども、このセレクタは、仕事をしていません少し速く:

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

ありがとう、マット、あなたは素晴らしいです! – iwan

関連する問題