jQuery - 每个div每3个href!

时间:2011-02-23 01:20:22

标签: jquery

我有一些像

这样的div
<div class="block-wrap">
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
</div>

<div class="block-wrap">
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
<a href="#">A</a>
</div>

和jQuery。

$('div.block-wrap a').each(function(index) {
  if ((index+ 1) % 3 == 0)
     $(this).after("<span></span>");
});

此广告在3 a href 一个范围之后,但如果我在一个div只有2 一个href ,它会在下一个div中添加一个范围< em> a href 。 我需要分别对每个div进行此计数。 有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分:6)

为每个block-wrap执行单独的迭代。

示例: http://jsfiddle.net/Q5Bzj/1/

$('div.block-wrap').each(function() {
  $(this).children('a').each(function(index) {
     if ((index+ 1) % 3 == 0)
         $(this).after("<span></span>");
   });
});

如果您希望每个block-wrap<span>结束,无论如何,您都可以这样做:

示例: http://jsfiddle.net/Q5Bzj/

$('div.block-wrap').each(function() {
    $(this).children('a').each(function(index) {
     if (index % 3 == 2)
         $(this).after("<span></span>");
    }).end().children('a:last-child').after("<span></span>");
});