我认为这很简单,但我找不到如何做到这一点:
假设我有元素:
<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");
显然范围会发生变化。在给定范围内选择元素的最简单方法是什么?
如果您认为这可以通过比使用类更简单的方式实现(我认为这很可能),请提及。
答案 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;
});