试图找到一种更好的方法来测试索引值是否等于某个值的倍数,在这种情况下,假设为10。以下显然是不理想的。寻找更好的方法。 (目前有精神障碍。)
$('.element').each(function(i){
if (i==9 || i==19 || i == 29 || etc... ){
alert('condition met');
}
});
最佳答案
$('#element').each(function(i){
if (i % 9 == 0){
alert('condition met');
}
});
注意:ID选择器只会选择一个元素,所以我想这是问题中的错字
如果所有元素都是同级元素,您也可以查看nth-child selector
$('.element:nth-child(9n)').each(function(i){
alert('')
});
工作片段:
//just to populate
$('.element').html(function(i) {
return i + 1;
});
//using index
$('.element').each(function(i) {
if (i > 0 && i % 9 == 0) {
$(this).css('color', 'red')
}
});
$('.element:nth-child(9n)').each(function(i) {
$(this).css('background-color', 'green')
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>