将数组值分配给表格单元格(Js)

时间:2016-02-20 23:31:51

标签: javascript jquery html

我试图给每个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]);
 }

});

2 个答案:

答案 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]);
 }

});