[英]loop through :eq() selector in jquery
not working attempt : http://jsfiddle.net/ahrxvtaa/ 不起作用的尝试: http : //jsfiddle.net/ahrxvtaa/
I want to get 3, 6, 9 etc.. note that I use .css() just to see the result, please don't comment u can selector using css. 我想得到3、6、9等。请注意,我使用.css()只是为了查看结果,请不要发表评论,您可以使用CSS选择器。
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
my js 我的js
$('.item').each(function(){
$(this).eq(3).css('font-weight','bold');
}
You can use .filter() like 您可以使用.filter()之类的
$('.item').filter(function(idx) { return idx > 2 && idx % 2 == 1 }).css('font-weight', 'bold');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> <div class="item">7</div> <div class="item">8</div> <div class="item">9</div>
or if all these items are children of 1 parent and there are no other elements between them then use the :nth-child selector 或者如果所有这些项目都是1个父级的子级,并且它们之间没有其他元素,则使用:nth-child选择器
$('.item:nth-child(2n + 4)').css('font-weight', 'bold');
.item:nth-child(2n + 4) { padding-left: 10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> <div class="item">7</div> <div class="item">8</div> <div class="item">9</div> </div>
For jQuery 1.9 and above 对于jQuery 1.9及更高版本
$('.item:nth-of-type(3n)').css('font-weight','bold');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"> </script> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div>
You can use the index
argument with .each()
: 您可以将
index
参数与.each()
:
$('.item').each(function(index){
if (index % 3 === 2) {
$(this).css('font-weight','bold');
}
}
You could also use .filter()
like this: 您也可以使用
.filter()
这样:
$('.item').filter(function(index) {
return index % 3 === 2;
}).css('font-weight','bold');
As was pointed out, note that index of 0 is your item 1, index of 1 is your item 2, index 2 is your item 3, so to get 3,6,9 we look for a remainder of 2. 如前所述,请注意,索引0为您的项目1,索引1为您的项目2,索引2为您的项目3,因此要得到3,6,9,我们寻找余数2。
$('.item:nth-of-type(3n)').css('font-weight','bold');
这会起作用
Modulus is a good idea, this is for if the sequence isn't as predictable. 模量是一个好主意,这是因为顺序不是那么可预测的。 You can pass in an array of what you are looking for.
您可以传递所需的数组。
var idx = [3,6,9];
for (var i = 0; i < idx.length; i++) {
/* Subtract one 1 since it is a 0 based index... */
$('.item').eq(idx[i]-1).css('font-weight','bold');
};
or do the same thing with an each loop... 或对每个循环执行相同的操作...
idx.each(function(i){
$('.item').eq(i-1).css('font-weight','bold');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.