我试图给每个td类“.m”一个数组中的值。
即。第一个单元格从数组中获得第一个数字,第二个单元格获得第二个数字等。
问题是所有单元都被赋予相同的'1'
值非常感谢任何帮助。
这是我到目前为止所尝试的内容:
JsFiddle:https://jsfiddle.net/Fraser_M/8cs5tcav/2/
HTML:
<table>
<tr>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
</tr>
<tr>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
<td class='m'></td>
</tr>
</table>
JS:
$(function() {
var myArray = [1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1];
var myArrayLength = myArray.length;
for (var i = 0; i < myArrayLength; i++) {
$('.m').text(myArray[i]);
}
});
答案 0 :(得分:1)
问题在于$('.m')
会在每次迭代时选择所有元素,因此它们都会被设置为数组中的最后一个元素。
我认为这就是你想要的:https://jsfiddle.net/z9t4w7s3/1/
编辑:来自小提琴的代码块:
$(function() {
var myArray = [1,0,0,1,0,0,1,0,1,0,1,1];
var myArrayLength = myArray.length;
$('.m').each(function(i, element) {
$(element).html(myArray[i]);
});
});
答案 1 :(得分:1)
使用.eq()
在i
循环
.m
元素集合中的索引for
处选择元素
$(function() {
// cache selector
var m = $(".m");
var myArray = [1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1];
var myArrayLength = myArray.length;
for (var i = 0; i < myArrayLength; i++) {
m.eq(i).text(myArray[i]);
}
});