Jquery 将数值类应用于子元素

Jquery 将数值类应用于子元素,jquery,class,numbers,Jquery,Class,Numbers,我似乎不知道如何将一个类添加到其父元素中的一组元素中 示例: <div class="block"> <a href="#" class="thumbnail"></a> <a href="#" class="thumbnail"></a> <a href="#" class="thumbnail"></a> </div> <div class="block"> <a

我似乎不知道如何将一个类添加到其父元素中的一组元素中

示例:

<div class="block">
  <a href="#" class="thumbnail"></a>
  <a href="#" class="thumbnail"></a>
  <a href="#" class="thumbnail"></a>
</div>
<div class="block">
  <a href="#" class="thumbnail"></a>
  <a href="#" class="thumbnail"></a>
  <a href="#" class="thumbnail"></a>
</div>
<div class="block">
  <a href="#" class="thumbnail group1"></a>
  <a href="#" class="thumbnail group1"></a>
  <a href="#" class="thumbnail group1"></a>
</div>
<div class="block">
  <a href="#" class="thumbnail group2"></a>
  <a href="#" class="thumbnail group2"></a>
  <a href="#" class="thumbnail group2"></a>
</div>
$("div.Block a").attr("class", function (arr) {
  return "group" + arr;
});

但这会使块中的类返回到所有具有不同编号的类,而不是分组。可能在父div上使用它,并在之后以某种方式将master div类复制到它的每个子类?

您可以使用以下代码执行此操作

$("div.block").each(function(i){
    $(this).find("a").addClass("group" + (i + 1));
});
$("div.block").each(function(index){
  $(this).find('a').addClass("group" + (index+1));
})
试着像下面这样

//     v-- Note: your div class is block not Block.
$("div.block").each (function (idx) { 
    $(this).find('a').addClass('group' + (idx+1));
});

循环遍历div并使用该迭代器中的索引:

​$(".block").each(function(i,e){
    $("a",e).addClass("group" + (i+1));
})​​​
请注意使用addClass而不是attr。
另请注意,使用e(元素)作为“a”选择器的上下文

我通常更喜欢这种表示法,而不是
。一般来说,查找
,这比
$('a',this)
$(this)更好。查找(
?@vega它们基本上是一样的。可能只要用你觉得更清楚的就行了。谢谢大家!我似乎无法让James的工作正常,我最终还是用了这个版本的代码。是的,我看到我的示例中的类错了,但在我写文章时只是一个打字错误。
​$(".block").each(function(i,e){
    $("a",e).addClass("group" + (i+1));
})​​​