2011-08-17 17 views
0

は、次のようないくつかのマークアップを考える:jqueryセレクタは、どのdiv要素がネストされていても、指定されたdiv内のすべてのアンカー要素を取得しますか?

<div id="header"> 
    <div id="nest-one> 
     <a href="#">one</a> 
     <div id="nest-two"> 
     <a href="#">two</a> 
     <a href="#">three</a> 
     </div> 
    </div> 
</div> 

と私は、Aタグのすべてにシングルクリックハンドラを結び付けたいです。

私は以下を試しましたが、うまくいきませんでした。私は何かが愚かな簡単に欠けていることを知っている、それが何であるか分からない。

$('#header a').click(function(){alert('on click')}); 
+3

文書内のJavaScriptのその行の準備ができている、または少なくともソースのHTMLの後に? – nnnnnn

答えて

5

作品

<div id="nest-one> 

あなたはIDの二重引用符を忘れてしまいました。

これ以外にも、HTML要素を参照するJavaScriptは、ドキュメントレディ機能やソース内の要素の後にあることを確認してください。

+1

マークアップは単なるサンプルであったと思います私が紛失していた書類の準備ができていた。それを試してみると、それが動作すると仮定して、あなたの答えを受け入れる – shsteimer

1

Demo


EDIT BoltClockのポイントごと

:これは、この行で、実際に

$('#header a').click(function(){alert('on click')}); 
+2

'each()'を使う必要はないと思っています... – BoltClock

+0

だからO_oです。http://jsfiddle.net/CuDMp/1/ idk問題が何であるか –

0

$ .liveまたは$ .delgateを使用すると、今後DOMに動的に追加される要素にもバインドされます。

例:

$("#header").delegate("a", "click", function() { 
    console.log("%o clicked", this); // log object in firebug 
}); 
+0

それは多くの違いを作るとは思わない –

関連する問題