我的项目已生成带有类的HTML元素集。我想在集合中进行搜索,以查看是否有任何元素具有类span1hr
的旁边是具有类span0hr
的元素,然后将每行的类从span1hr
更改为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>
<div id="programe11" class="pgmFirstRow div_3_2 row2 span1hr">CNN Newsroom</div>
<div id="programe12" class="pgmFirstRow div_3_3 row3 span1hr">Around the World</div>
<div id="programe13" class="pgmFirstRow div_3_4 row4 span0hr">CNN Newsroom</div>
<div id="programe14" class="pgmFirstRow div_3_5 row5 span2hr">CNN Newsroom</div>
<div id="programe15" class="pgmFirstRow div_3_6 row6 span1hr">The Lead With Jake Tapper</div>
在这种情况下,由于
programe2
和programe12
具有一个span1hr
类,programe3
和programe14
具有一个span0hr
类,我想在每个row3
的集合上找到一个类旁边的span1hr
类别为row4
,以将每个span0hr
中的类别从row3
更改为span1hr
,而span1hrfor30mins
中的类别span0hr
保持不变。对于row4
和programe7
中具有“ span1hr”类的其他类,这些类在programe8
和programe2
中不匹配,我想忽略它。我已经尝试过这样的代码,但是它将在html中搜索每组
programe12
,而无需检查两个不同的组row3
和row3
来更改类。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');
}
});
}
有人知道我该怎么做吗?
最佳答案
如果我正确地理解了您的问题,那么它可能甚至更简单(不可否认,我不得不多次阅读逻辑,然后才觉得自己了解您在寻找什么:D)。这应该工作:
$(".row3.span1hr + .row4.span0hr").each(function(){
$(this).prev().addClass("span1hrfor30mins").removeClass("span1hr");
});
这将捕获所有同时具有
row4
和span0hr
类的元素,以及紧随具有row3
和span1hr
类的元素之后发生的所有元素。然后它将使用.row3.span1hr
返回到第一个元素(即.prev()
元素),添加span1hrfor30mins
类,然后删除span1hr
类。