简体   繁体   English

通过jeq中的:eq()选择器循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM