2016-02-20 27 views
2

我试图给每个td从类'.m'从数组中的值。分配数组值到表单元格(Js)

即第一小区被给定的第一数目从阵列,所述第二小区被给予第二数目等

的问题是,所有的单元都被赋予“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]); 
} 

}); 

回答

1

的问题是,$('.m')选择所有每次迭代都要素,所以他们都会b e设置为数组中的最后一个元素。

我想这是你所追求的:从小提琴代码块: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]); 
    }); 
}); 
+0

工作完美,谢谢 – Fraser

1

使用.eq()for循环中.m集合元素之内选择在指数i元素

$(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]); 
} 

});