我得到了一个表,其中必须从数组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}}。
答案 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)
您不会在循环中递增变量r
。 r
设置为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>