通过遍历数组填充表

时间:2019-02-15 00:13:11

标签: javascript jquery

我得到了一个表,其中必须从数组td中的第一个tr的第一个tr开始,以按它们在数组中的顺序插入的项从数组中填充。

这是我的JavaScript的示例:

terms = [
     "term 1",
     "term 2",
     "term 3",
     "term 4",
]; 
var terms_length = terms.length;
var r = 1;
r++;
for (var t=0; t < terms_length; t++) {
    $("#termstable tr:nth-child(" + r + ") td:nth-child(1)").html(terms[t]);
}

截至目前,它仅使用数组的最后一项填充第二tr的{​​{1}}。

4 个答案:

答案 0 :(得分:1)

将您的r放入循环

terms = [
 "term 1",
 "term 2",
 "term 3",
 "term 4",
]; 

var terms_length = terms.length;
var r = 1;
for (var t=0; t < terms_length; t++) {
    $("#termstable tr:nth-child(" + r + ") td:nth-child(1)").html(terms[t]);
    r++;
}

答案 1 :(得分:1)

您不会在循环中递增变量rr设置为1时,2运行时会递增为r++,然后再保持不变

因此,在每个循环中,jquery最终都会成为

$("#termstable tr:nth-child(2) td:nth-child(1)").html(terms[t]);

您还需要在循环中递增r

terms = [
     "term 1",
     "term 2",
     "term 3",
     "term 4",
]; 
var terms_length = terms.length;
var r = 1;

for (var t=0; t < terms_length; t++) {
    $("#termstable tr:nth-child(" + r + ") td:nth-child(1)").html(terms[t]);
    r++;
}

答案 2 :(得分:0)

如果您只使用更多的jQuery,将会容易很多

var terms = [
   "term 1",
   "term 2",
   "term 3",
   "term 4" 
]; 

$("#termstable tr:nth-child(n+2) td:first-child").html(function(i) {
    return terms[i];
});

答案 3 :(得分:0)

您必须使用r而非++r在循环中增加r变量。但是,仅使用t + 2并删除r更简单。观看此现场演示:

const terms = [
 "term 1",
 "term 2",
 "term 3",
 "term 4",
]; 

for (let t = 0; t < terms.length; t++) {
  $("#termstable tr:nth-child(" + (t + 2) + ") td:nth-child(1)").html(terms[t]);
}
table {
  border-collapse: collapse;
}

td, th {
  border: 1px solid black;
  min-width: 20px;
  text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<table id="termstable">
  <thead>
    <tr><th>term</th><th>#</th></tr>
  </thead>
  <tbody>
    <tr><td></td><td>0</td></tr>
    <tr><td></td><td>1</td></tr>
    <tr><td></td><td>2</td></tr>
    <tr><td></td><td>3</td></tr>
    <tr><td></td><td>4</td></tr>
  </tbody>
</table>