2

次の html があり、teaser_title に応じて、class="boxgrid" である親 div クラスにクラスを追加したい...

<div class="boxgrid">
     <img src="my_image1.jpg" alt="Image 1"> 
     <div class="cover boxcaption"> 
          <div class="teaser-title">Image 1</div> 
     </div> 
</div>

<div class="boxgrid">
     <img src="my_image2.jpg" alt="Image 2"> 
     <div class="cover boxcaption"> 
          <div class="teaser-title">Image 2</div> 
     </div> 
</div>

今、私はこのコードを試しました...

$('.teaser-text').each(function() { 
      var teasertext = $('.teaser-text').text().replace(/ /g,"_").toLowerCase(); 
      $('.boxgrid').addClass(teasertext); 
});

上記のコードは次のように出力されます。

<div class="boxgrid **image_1image_2**">
     <img src="my_image1.jpg" alt="Image 1"> 
     <div class="cover boxcaption"> 
          <div class="teaser-title">Image 1</div> 
     </div> 
</div>

私は何を間違えましたか?この小さな問題で私を助けてくれる人。ありがとう..

4

2 に答える 2

2

使用する$(this)

.最も近い()

$('.teaser-text').each(function() { 
      var teasertext = $(this).text().replace(/ /g,"_").toLowerCase(); 
      $(this).closest('.boxgrid').addClass(teasertext); 
});
于 2013-08-29T07:15:32.330 に答える
0

「.boxgrid」クラス名の要素にクラスを追加しています。したがって、毎回「boxgrid」クラスの最初の div が見つかります。

それ以外の$('.boxgrid').addClass(teasertext);

これを使って、

$(this).closest('.boxgrid').addClass(teasertext); 

これにより、クラス名が「boxgrid」の最も近い要素が検索されます。

于 2013-08-29T07:23:34.503 に答える