2010-01-08 5 views
7

Bonjour, regardez le code HTML ci-dessous. Je suis en train d'utiliser jQuery pour obtenir tous les 3 par exemple sur les DIVs avec class="box" contenues dans la DIV avec class="entry" d'avoir une aucune marge de droite:jQuery: sélecteur nth-child()

Mon code HTML:

<div class="entry"> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box I Want to remove right hand margin on this div --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box I Want to remove right hand margin on this div --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box --> 

    <div class="box"> 
     SOME HTML.... 
    </div><!-- end .box I Want to remove right hand margin on this div --> 

    </div> 
    <!--end entry--> 

Ma tentative avec jQuery:

<script> 
     $(document).ready(function(){ 
      $("div.entry:nth-child(3)").css("margin", "0px"); 
     }); 
    </script> 

Je ne peux pas obtenir ce travail peut-on aider s'il vous plaît? Merci d'avance!


Merci à tous ceux qui ont aidé la solution fournie est en effet correcte. Je suis en train de coder un modèle fourni et j'ai trouvé que JQuery avait été configuré pour fonctionner en mode de compatibilité, d'où le problème.

+0

J'ai eu le même problème aussi. J'ai créé un conteneur div, ".entry" dans ce cas, et utilisé le sélecteur 'div.entry> div.box:nth-child (3)' qui a fonctionné greate. merci pour l'aide –

Répondre

11

De la documentation (je souligne)

Matches tous les éléments qui sont le n-ième enfant de leurs parents ou qui sont même ou les enfants impairs du parent.

Vous sélectionnons actuellement le parent, alors que vous devriez sélectionner les enfants:

$("div.entry > div:nth-child(3)").css("margin", "0px"); 
+2

Merci pour votre aide très appréciée malheureusement qui n'a pas fonctionné. – mtwallet

3

Votre sélecteur :nth-child ne fait pas référence n et vous devez référencer le div intérieur dans votre sélecteur.

Essayez:

$(document).ready(function(){ 
    $("div.entry div:nth-child(3n)").css("margin", "0px"); 
}); 
+0

Essayé que merci mais aucune joie d'autres idées? – mtwallet

+1

Désolé - juste repéré que votre sélecteur était faux aussi. Vous avez toujours besoin du '3n' plutôt que du' 3', mais vous devez aussi mettre 'div' avant le truc' nth-child'. J'ai testé cela et ça fonctionne. –

+0

Merde, maintenant vous l'avez corrigé. ;-) – Gumbo

1

Essayez ce sélecteur:

div.entry > div.box:nth-child(3n) 
+0

Encore une fois merci pour l'aide, mais cela n'a pas fonctionné – mtwallet

+0

@mtwallet: Eh bien, cela fonctionne pour moi. – Gumbo

7

nième enfant semble aussi être non 0 indexées . Gardez cela à l'esprit si vous avez l'habitude d'indexer à 0.

+0

Cest vraiment utile ... thnx! –