我有一个带有一些值的隐藏字段,我必须在HTML表格中附加这些值。表格中的列数是固定的。 我已成功附加,但在第一行之后,它应该在新行中追加数据,而不是追加到同一行。 这就是我在做的事情
$("#btntbl").click(function () {
debugger
var tabl = $("#testTable");
var vals = $("#txthidden").val();
for (var i = 0; i < vals.split(";").length; i++) {
for (var j = 0; j < vals.split(";")[i].split(",").length; j++) {
tabl.append("<td>" + vals.split(";")[i].split(",")[j] + "</td>");
}
}
});
另请注意,某些用户没有禁用列的值 JS Fiddle 如何在每次单击按钮时添加新行?
答案 0 :(得分:2)
您需要拆分两次并为每行创建tr
:
$("#btntbl").click(function () {
var tabl = $("#testTable"),
vals = $("#txthidden").val(),
rows = vals.split(';'),
columns, i;
for (i = 0; i < rows.length; i++) {
columns = rows[i].split(',');
tabl.append(
'<tr>' +
'<td>' + columns[0] + '</td>' +
'<td>' + columns[1] + '</td>' +
'<td>' + (columns[2] || '') + '</td>' +
'</tr>'
);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="btntbl" value="Export to table">
<input type="hidden" value="User1,pwd1;User2,pwd2,disabled;User3,pwd3,disabled;User4,pwd4" id="txthidden" />
<table id="testTable" border="2">
<thead valign="top">
<tr>
<th>User</th>
<th>Password</th>
<th>Disabled</th>
</tr>
</thead>
</table>
&#13;
答案 1 :(得分:1)
只需添加行
即可更改目标更改
var tabl = $("#testTable");
要
var tabl = $('<tr>');
$("#testTable").append( tab1);
答案 2 :(得分:1)
<强> jsFiddle demo 强>
$("#btntbl").click(function () {
var parts = $("#txthidden").val().split(";"), i=0;
for (;i<parts.length;) {
var j=0, tr="<tr>", subParts=parts[i++].split(",");
for (;j<3;) tr += "<td>" + (subParts[j++]||"") +"</td>"; // concatenate
$("#testTable").append( tr +"</tr>" ); // Append once
}
});
答案 3 :(得分:1)
以下是如何做到这一点
var convertToTable = function (val) {
val = val.split(';');
val = val.map(function (v) {
v = v.split(',');
if (v.length === 2) v[v.length] = 'NA';
return '<td>' + v.join('</td><td>') + '</td>';
});
val = '<tr>' + val.join('</tr><tr>') + '</tr>';
return val;
}
然后
tabl.html(convertToTable(vals));
演示here
答案 4 :(得分:0)
你忘记了TD标签,只需在TD之前使用开放标签并在最后关闭它