0

私のプロジェクトは、クラスを持つ HTML 要素のセットを生成しました。span1hrセットを検索して、 classを持つ要素の隣にクラスがあるかどうかを確認し、ループを使用して各行のクラスを からにspan0hr変更したいと思います。span1hrspan1hrfor30mins

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クラスがあり、programe3とにprograme14はクラスがあるので、次のクラスを持つ各セットspan0hrで検索したい変更なし。andで一致しないクラス「span1hr」を持つandの他のクラスについては、無視したいと思います。row3span1hrrow4span0hrrow3span1hrspan1hrfor30minsspan0hrrow4programe7programe8programe2programe12

私はこのようなコードを試しましたが、2 つの異なるセットをチェックせずに、クラスを変更することなく、html 内のすべてのセットを検索しますrow3row3row4

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

3 に答える 3

1

あなたの問題を正しく理解していれば、それよりもさらに簡単になる可能性があります(確かに、あなたが探しているものを理解したように感じる前に、ロジックを何度も読む必要がありました:D )。これはうまくいくはずです:

$(".row3.span1hr + .row4.span0hr").each(function(){
    $(this).prev().addClass("span1hrfor30mins").removeClass("span1hr");
});

row4これにより、 andspan0hrクラスの両方を持ち、かつ and クラスrow3持つ要素の直後に出現するすべての要素が取得されspan1hrます。次に、 を使用して最初の要素 (.row3.span1hr要素)に戻り、クラス.prev()を追加し、span1hrfor30minsクラスを削除しspan1hrます。

于 2013-07-19T17:27:31.960 に答える