1

我似乎无法弄清楚如何将一个类添加到其父级中的一组元素中。

例子:

<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 上使用它,然后以某种方式将主 div 类复制到它的每个孩子?

4

5 回答 5

2
$("div.block").each(function(i){
    $(this).find("a").addClass("group" + (i + 1));
});
于 2012-05-18T20:51:58.267 回答
1
$('div.block').each(function(idx) {
    $('a', this).addClass('group' + (idx + 1));
});​
于 2012-05-18T20:52:16.063 回答
0

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

$("div.block").each(function(index){
  $(this).find('a').addClass("group" + (index+1));
})
于 2012-05-18T20:52:30.573 回答
0

尝试如下,

//     v-- Note: your div class is block not Block.
$("div.block").each (function (idx) { 
    $(this).find('a').addClass('group' + (idx+1));
});
于 2012-05-18T20:52:31.897 回答
0

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

​$(".block").each(function(i,e){
    $("a",e).addClass("group" + (i+1));
})​​​

请注意使用 addClass 而不是 attr。还要注意使用 e(元素)作为“a”选择器的上下文

于 2012-05-18T20:54:43.413 回答