2010-10-14 201 views
1

我有以下標記幫助jQuery選擇

<div id="FirstDiv"> 
    <div class="MyClass"> 
     <span> 
      <a href="#">link 1</a> 
      <a href="#">link 2</a> 
     </span> 
    </div> 
</div> 
<div id="SecondDiv"> 
    <div class="MyClass"> 
     <span> 
      <a href="#">link 1</a> 
      <a href="#">link 2</a> 
     </span> 
    </div> 
</div> 

我怎樣才能選擇阿拉的DIV「SecondDiv」裏面的<a>標記元素?

其實我做的

$(".MyClass > a").click(function (event) { 

但是這也將選擇第一個div鏈接。

回答

4
$('#SecondDiv a') 

這使用SecondDiv元素的ID,並選擇all descendant<a>元件。

您正在使用the > child selector,它只會選擇直接的孩子。你說得對,它會從.MyClass元素中選擇。

另一種可能性是將a .delegate()放置在SecondDiv元素上以匹配對嵌套元素的點擊次數。

$('#SecondDiv').delegate('a', 'click', function() { 
     // your code 
}); 

編輯:在參照下您的意見,您可以通過放置在選擇將其限制在.MyClass元素<a>元素。

$('#SecondDiv .MyClass a') 

現在不從.MyClass下降的任何<a>元素將不包括在內。

+0

是否有同時使用MYCLASS選擇喜歡的方式' $('#SecondDiv .MyClass a')' – Lorenzo 2010-10-14 00:54:30

+0

@Lorenzo - 是的,如果'SecondDiv'下還有其他''元素不在'.MyClass'下面,那麼這個選擇器會將elim在那裏。 – user113716 2010-10-14 00:55:40

2

你應該在這裏使用的ID選擇器(#),而不是類選擇的()。

$("#SecondDiv a").click(function (event) { 

瞭解更多關於ID SelectorClass selector

2
$("#SecondDiv a").click(function(){ 
    alert("Hi-o"); 
}); 
1
$("#SecondDiv").find("a").click(function(event) {});