2

これは非常に簡単だと思いますが、その方法がわかりません:

次の要素があるとします。

<div class="1">Div 1</div>
<div class="2">Div 2</div>
<div class="3">Div 3</div>
<div class="4">Div 4</div>
<div class="5">Div 5</div>
<div class="6">Div 6</div>
<div class="7">Div 7</div>
<div class="8">Div 8</div>

また、特定の範囲内の要素を対象にして、いくつかの CSS 属性を変更したいと考えています。例えば:

$(Class > 3 and < 7).css("background","#0077C1");

明らかに範囲が変わります。特定の範囲内の要素を選択する最も簡単な方法は何ですか?

クラスを使用するよりも簡単な方法でこれを達成できると思われる場合は (可能性が高いと思います)、その旨をお知らせください。

4

4 に答える 4

6

これを試して

$('.2').nextUntil('.8').css('background','#0077C1');
于 2013-02-04T11:45:46.933 に答える
0
<div class="divClass" id="1">Div 1</div>
<div class="divClass" id="2">Div 2</div>
<div class="divClass" id="3">Div 3</div>
<div class="divClass" id="4">Div 4</div>
<div class="divClass" id="5">Div 5</div>
<div class="divClass" id="6">Div 6</div>
<div class="divClass" id="7">Div 7</div>
<div class="divClass" id="8">Div 8</div>

$('.divClass').each(function() {
    var divID = $(this).attr('id');
    if(divID >3 && divID<7)
    {
        // do something
    }
});
于 2013-02-04T11:46:43.607 に答える
0

.slice()メソッドを使用して、配列内の要素のサブセットを選択できます。ただし、これではcssクラス名は使用されません。

$('div').slice(2, 6).css('background','#0077C1');
于 2013-02-04T11:47:19.937 に答える
0

あなたの質問が、インデックスだけでなく、クラスごとの選択に関するものであると仮定すると、starts-with セレクターとfilter.

クラスが「c」で始まる有効なクラス名 (c1、c2 など) であると仮定すると、次のように要素を選択できます。

$('[class^=c]').filter(function(){
   var num = parseInt(this.className.slice(1), 10);
   return num>3 && num<7;
});
于 2013-02-04T11:49:33.420 に答える