我的项目已生成带有类的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>


在这种情况下,由于programe2programe12具有一个span1hr类,programe3programe14具有一个span0hr类,我想在每个row3的集合上找到一个类旁边的span1hr类别为row4,以将每个span0hr中的类别从row3更改为span1hr,而span1hrfor30mins中的类别span0hr保持不变。对于row4programe7中具有“ span1hr”类的其他类,这些类在programe8programe2中不匹配,我想忽略它。

我已经尝试过这样的代码,但是它将在html中搜索每组programe12,而无需检查两个不同的组row3row3来更改类。

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");
});


这将捕获所有同时具有row4span0hr类的元素,以及紧随具有row3span1hr类的元素之后发生的所有元素。然后它将使用.row3.span1hr返回到第一个元素(即.prev()元素),添加span1hrfor30mins类,然后删除span1hr类。

10-01 18:25