2010-10-14 4 views
1

Je le balisage suivantAide avec le sélecteur 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> 

Comment puis-je sélectionner les éléments alla tag <a> à l'intérieur du DIV "SecondDiv"?

En fait, je suis en train de faire

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

mais choisirait également des liens de la première div.

Répondre

4
$('#SecondDiv a') 

Celui-ci utilise l'ID de l'élément SecondDiv, et sélectionne all descendant<a> éléments.

Vous utilisiez the > child selector, qui ne sélectionnait que les enfants immédiats. Et vous avez raison de choisir parmi les deux éléments .MyClass.

Une autre possibilité consiste à placer a .delegate() sur l'élément SecondDiv pour faire correspondre les clics avec les éléments <a> imbriqués.

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

EDIT: En ce qui concerne votre commentaire ci-dessous, vous pouvez limiter à <a> éléments dans l'élément .MyClass en le plaçant dans le sélecteur. Maintenant, tous les éléments <a>

$('#SecondDiv .MyClass a') 

qui ne descendent pas de .MyClass ne seront pas inclus.

+0

Est-il possible d'utiliser également le sélecteur Myclass comme ' $ ('# SecondDiv .MyClass a') ' – Lorenzo

2

Vous devez utiliser le sélecteur d'ID (#) ici au lieu du sélecteur de classe (.)

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

En savoir plus sur ID Selector et Class selector.

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