0

我的项目已经生成了一组 HTML 元素,稍后会向这些元素添加类。我想在集合中搜索以查看是否有任何元素具有类,span1hr后跟一个具有类的元素,span0hr如果是,则将这两个类都更改为span1hrfor30mins.

下面是 HTML 元素的样例:

<div id="programe1" class="pgmFirstRow div_1_2 row2"></div>
<div id="programe2" class="pgmFirstRow div_1_3 row3 span1hr">NCIS</div>
<div id="programe3" class="pgmFirstRow div_1_4 row4 span0hr">CBS Evening News With Scott Pelley</div>
<div id="programe4" class="pgmFirstRow div_1_5 row5 span1hr">NCIS: Los Angeles</div>
<div id="programe5" class="pgmFirstRow div_1_6 row6">Person of Interest</div>

<div id="programe6" class="pgmFirstRow div_2_2 row2 span1hr">Twisted</div>
<div id="programe7" class="pgmFirstRow div_2_3 row3 span1hr">Pretty Little Liars</div>
<div id="programe8" class="pgmFirstRow div_2_4 row4 span1hr">Pretty Little Liars</div>
<div id="programe9" class="pgmFirstRow div_2_5 row5 span1hr">Twisted</div>
<div id="programe10" class="pgmFirstRow div_2_6 row6 span1hr">Pretty Little Liars</div>

在这种情况下,由于programe2has a span1hrclass 并且programe3has a span0hrclass,我希望将这些类更改为span1hrfor30mins.

一个额外的复杂性:如您所见,我有多组row2-row6类,并且需要在每组行中进行此搜索。

我已经尝试过这样的代码,但需要为 row2-3、row3-4、row4-5 和 row5-6 复制它。

if($('.span1hr').hasClass('row3') && $('.span0hr').hasClass('row4'))
{
  $('.span1hr').each(function(i,e)
  {
    if($(e).hasClass('row3') && $(e).hasClass('.span1hr'))
    {
      $(e).attr('row3'); $(e).removeClass('span1hr').addClass('span1hrfor30mins');
    }
  });
}

有谁知道我该怎么做?

4

1 回答 1

1

如果我理解正确,如果当前元素具有某个类,则需要检查下一个元素的类。

由于您使用的是 jQuery,请尝试使用.next()函数。像这样的东西

 $('.pgmFirstRow').each(function(index, element) {
   element = $(element);
   if(element.hasClass('span1hr') && element.next().hasClass('span0hr')) {
      element.removeClass('span1hr').addClass('span1hrfor30mins').next().removeClass('span0hr').addClass('span1hrfor30mins');
   }
 });
于 2014-01-05T21:59:27.930 回答