在jQuery中选择编号的元素范围

时间:2013-02-04 11:42:59

标签: jquery range

我认为这很简单,但我找不到如何做到这一点:

假设我有元素:

<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 个答案:

答案 0 :(得分:6)

试试这个

$('.2').nextUntil('.8').css('background','#0077C1');

答案 1 :(得分: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
    }
});

答案 2 :(得分:0)

您可以使用.slice()方法选择数组中的元素子集。但是这不会使用你的css类名。

$('div').slice(2, 6).css('background','#0077C1');

答案 3 :(得分:0)

假设您的问题实际上是关于按类选择而不仅仅是通过索引进行选择,那么最好是将启动选择器与filter结合起来。

假设您的类以“c”开头是有效的类名(c1,c2等),那么您可以选择这样的元素:

$('[class^=c]').filter(function(){
   var num = parseInt(this.className.slice(1), 10);
   return num>3 && num<7;
});