根据某个div的内容将类添加到父div

时间:2013-08-29 07:13:32

标签: javascript jquery html addclass

我有以下html,我想在父div类中添加类,它是class =“boxgrid”,具体取决于teaser_title ...

<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>

我做错了什么?有谁愿意帮我解决这个小问题。感谢..

2 个答案:

答案 0 :(得分:2)

使用$(this)

.closest()

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

答案 1 :(得分:0)

您正在使用'.boxgrid'类名称向元素添加类。 所以每次它都会找到第一个带有'boxgrid'类的div。

而不是$('.boxgrid').addClass(teasertext);

使用此,

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

这将找到类名为“boxgrid”的最接近的元素。