javascript - 使用 jquery html 将类添加到索引
问题描述
<tr>
<td class="a 1"></td>
<td class="a 2"></td>
<td class="a 3"></td>
</tr>
<tr>
<td class="b 4"></td>
<td class="b 5"></td>
<td class="b 6"></td>
</tr>
if(val){
for(var i=0; i<val; i++){
$('.'+i).addClass("somecl");
}
}
如何通过在jQuery中使用索引添加类循环?
可以说,我们在 val 3 中应该将somecl类添加到类 a 1、a 2 和 a 3。如果它是 val = 4,它也应该将somecl添加到 a 1、a 2、a 3 和 b 4。我怎样才能做到这一点?请指导。
解决方案
你快到了。
由于不存在名为 0 的类i=1
,因此您可以在 开始和结束时循环i<=val
。我认为您在这里不需要if条件。
var val = 3;
for(var i=1; i<=val; i++){
$('.'+i).addClass("somecl");
}
.somecl{color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="a 1">11</td>
<td class="a 2">22</td>
<td class="a 3">33</td>
</tr>
<tr>
<td class="b 4">44</td>
<td class="b 5">55</td>
<td class="b 6">66</td>
</tr>
</table>
几个替代解决方案:
您可以使用.each()遍历所有td以检查元素是否具有类。如果有则添加类。
请注意: 索引从 0 开始,即第一个元素为 0,第二个元素为 1,依此类推。
var val = 3;
$('td').each(function(i){
var i = i+1;
if($(this).hasClass(i) && i <= val)
$(this).addClass("somecl");
});
.somecl{color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="a 1">11</td>
<td class="a 2">22</td>
<td class="a 3">33</td>
</tr>
<tr>
<td class="b 4">44</td>
<td class="b 5">55</td>
<td class="b 6">66</td>
</tr>
</table>
您可以使用.eq()将匹配元素集减少到指定索引处的元素。
var val = 3;
for(var i=0; i<val; i++){
$('td').eq(i).addClass("somecl");
}
.somecl{color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="a 1">11</td>
<td class="a 2">22</td>
<td class="a 3">33</td>
</tr>
<tr>
<td class="b 4">44</td>
<td class="b 5">55</td>
<td class="b 6">66</td>
</tr>
</table>
也可以获取一个变量中的所有元素,然后使用循环将当前i值的类设置为变量中元素的索引。
var el = $('td');
var val = 3;
for(var i=0; i<val; i++){
$(el[i]).addClass("somecl");
}
.somecl{color: red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td class="a 1">11</td>
<td class="a 2">22</td>
<td class="a 3">33</td>
</tr>
<tr>
<td class="b 4">44</td>
<td class="b 5">55</td>
<td class="b 6">66</td>
</tr>
</table>
推荐阅读
- javascript - 点击功能内的点击功能不起作用
- r - 使用 fit.variogram 估计的系数与模型拟合的图不匹配(gstat R 包)
- python - 使用 pandas 将带有分隔符的 TXT 文件读取为 ^@
- c++ - 如何在crypto ++中找到椭圆曲线的一个点(给定x)?或者如何计算有限域中的根?还是多项式环的根?
- unit-testing - Return a specific mock from a mocked constructor with Mockito
- c# - Child position is moving along with parent, but not actually moving (moving platform)
- c# - Updating many-to-many links with direct relationships
- java - 使用循环打印出二维数组中的行总和
- python - 如何在python中将多个图像转换为.npy?
- html - Bootstrap 导航药片无法正常工作