试图找到一种更好的方法来测试索引值是否等于某个值的倍数,在这种情况下,假设为10。以下显然是不理想的。寻找更好的方法。 (目前有精神障碍。)

$('.element').each(function(i){
   if (i==9 || i==19 || i == 29 || etc... ){
      alert('condition met');
   }
});

最佳答案

使用remainder operator

$('#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>

09-13 03:47