JQuery nth-child工作不正常

我正在使用JQuery的nth-child选择器用photo_post_thumbnail类来改变每个第3个div上的边距,但它每隔2个div改变一次?

谁能发现我做错了什么?

现场

http://www.clients.eirestudio.net/hatstand/wordpress/photos/

HTML标记

blah blah
blah blah
blah blah

JQuery代码

 $('.photo_post_thumbnail:nth-child(3n)').css('margin-right', '0px'); 

这样做是因为你在这些div之前有一个

,使得div成为第四个孩子而不是第三个孩子:)

nth-child选择器起初有点令人困惑,因为它是父节点nth-child 节点 ,而不仅仅是与父节点的选择器匹配nth-child节点,选择器不具有此选择器的位置。

要获得你想要的div,请像这样做3n+1

 $('.photo_post_thumbnail:nth-child(3n+1)').css('margin-right', '0px'); 

替代方案:

  $('.photo_post_thumbnail').each(function(i) { i=(i+1); if(i%3==0){ $(this).css("margin-right","0px")); } });