2010-01-08 12 views
7

Hallo, bitte schauen Sie sich die HTML unten an. Ich versuche, jQuery zu verwenden, um mit class="box" mit class="entry" innerhalb des DIV enthielt jede dritte Instanz auf die DIVs zu bekommen, keine rechten Rand zu haben:jQuery: N-Kind() Selektor

Mein HTML-Code:

<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--> 

Mein Versuch, mit jQuery:

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

Ich kann das nicht funktionieren kann jemand bitte helfen? Danke im Voraus!


Dank an alle, die geholfen haben, die Lösung zur Verfügung gestellt ist in der Tat richtig. Ich kodiere eine gelieferte Vorlage und stelle fest, dass JQuery im Kompatibilitätsmodus ausgeführt wurde, daher war $ das Problem.

+0

Ich hatte das gleiche Problem auch. Ich habe in diesem Fall ein Container-Div, ".entry", erstellt und den Selektor 'div.entry> div.box:nth-child (3)' verwendet, der greate funktioniert hat. danke für die Hilfe –

Antwort

11

Von der Dokumentation (Hervorhebung von mir)

Spiele alle Elemente , die die n-te-Kind ihrer Eltern sind oder das sind die auch Eltern oder ungerade Kinder.

Sie sind zur Zeit die Eltern die Auswahl, während Sie Kinder Auswahl werden sollten:

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

Danke für deine Hilfe sehr geschätzt leider das hat nicht funktioniert. – mtwallet

3

Ihr :nth-child Selektor verweist nicht auf n, und Sie müssen auf die innere div in Ihrem Selektor verweisen.

Versuchen:

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

Versucht, dass danke, aber keine Freude, keine anderen Ideen? – mtwallet

+1

Entschuldigung - gerade entdeckt, dass Ihr Selektor auch falsch war. Du brauchst immer noch die '3n' anstatt nur' 3', aber du musst auch 'div' vor die' nth-child' Sachen stellen. Ich habe das getestet und es funktioniert. –

+0

Verdammt, jetzt hast du es korrigiert. ;-) – Gumbo

1

diesen Selektor Versuchen:

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

Nochmals vielen Dank für die Hilfe, aber es hat nicht funktioniert – mtwallet

+0

@mtwallet: Nun, es funktioniert für mich. – Gumbo

7

n-te-Kind scheint auch nicht-0 indiziert zu sein . Denken Sie daran, wenn Sie gewohnt sind, bei 0 zu indexieren.

+0

Das ist wirklich nicht sinnvoll ... thnx! –