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 回答