2010-01-08 1 views
7

Привет, пожалуйста, взгляните на HTML ниже. Я пытаюсь использовать JQuery, чтобы получить каждый 3-й экземпляр на DIVs с class="box", содержащихся в DIV с class="entry" иметь запас правой руки:jQuery: nth-child() selector

Мой 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--> 

Моя попытка с JQuery:

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

Я не могу получить эту работу, может ли кто-нибудь помочь? Заранее спасибо!


спасибо всем, кто помог при условии, что это действительно правильно. Я кодирую прилагаемый шаблон и обнаружил, что JQuery был настроен на запуск в режиме совместимости, следовательно $ была проблемой.

+0

У меня была такая же проблема. В этом случае я создал контейнер div «.entry» и использовал селектор «div.entry> div.box:nth-child (3)», который работал greate. спасибо за помощь – 2013-03-31 07:44:37

ответ

11

Из документов (курсив мой)

Похожее все элементы , которые являются п-й ребенок их родителей или которые являются четные или нечетные дети родителя.

Вы в настоящее время выбора родителя, в то время как вы должны выбирать детей:

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

Спасибо за вашу помощь, которую высоко оценили, к сожалению, это не сработало. – mtwallet

3

Ваш селектор :nth-child не ссылается на n, и вам необходимо обратиться к внутреннему div в ваш селектор.

Try:

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

Пробовал, что спасибо, но без радости какие-либо другие идеи? – mtwallet

+1

Извините - просто заметили, что ваш селектор ошибался. Вам все равно нужен '3n', а не просто' 3', но вам также нужно поставить 'div' перед материалом nth-child. Я тестировал это, и он работает. –

+0

Черт, теперь вы его исправили. ;-) – Gumbo

1

Попробуйте этот селектор:

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

Снова спасибо за помощь, но это не сработало – mtwallet

+0

@mtwallet: Ну, это работает для меня. – Gumbo

7

п-й ребенок также, кажется, не индексируются 0 , Имейте это в виду, если вы привыкли к индексированию на 0.

+0

Это действительно полезно ... thnx! –