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(i,e){
    $("a",e).addClass("group" + (i+1));
})​​​

attrの代わりにaddClassを使用していることにも注意してください。また、「a」セレクターのコンテキストとしてe(要素)を使用することに注意してください

于 2012-05-18T20:54:43.413 に答える
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 に答える