我尝试从生成的表代码中为每个输入标记添加唯一ID。 DEMO 我想要这样的代码:
<table>
<tbody>
<tr>
<td class="tableCell">
<input id="1"> </input>
</td>
<td class="tableCell">
<input id="2"> </input>
</td>
</tr>
<tr>
<td class="tableCell">
<input id="3"> </input>
</td>
<td class="tableCell">
<input id="4"> </input>
</td>
</tr>
</tbody>
</table>
代替
<table>
<tbody>
<tr>
<td class="tableCell">
<input>
</td>
<td class="tableCell">
<input>
</td>
</tr>
<tr>
<td class="tableCell">
<input>
</td>
<td class="tableCell">
<input>
</td>
</tr>
</tbody>
</table>
生成代码的函数:
function createDynamicTable(tbody, rows, cols) {
if (tbody == null || tbody.length < 1) return;
for (var r = 1; r <= rows; r++) {
var trow = $("<tr>");
for (var c = 1; c <= cols; c++) {
var input = $("<input />");
$("<td>").addClass("tableCell").append(input).appendTo(trow);
}
trow.appendTo(tbody);
}
}
createDynamicTable($("tbody"), 2, 2);
如何进行更改以将uniq id插入每个输入标签?
答案 0 :(得分:2)
在功能之外:
var currentId = 0;
在你的功能中:
var input = $("<input />", {id: 'inp-' + ++currentId});
将inp-
替换为您喜欢的任何内容,但ID不能以数字开头。
答案 1 :(得分:1)
for (var c = 1; c <= cols; c++) {
var input = $("<input />");
// but don't use only numeric id
input.attr("id", c);
// OR
var input = $("<input />", {id: c});
$("<td>").addClass("tableCell").append(input).appendTo(trow);
// better would be
var input = $("<input />", {id: "id_" + c});
// OR
input.attr("id", "id_" + c);
$("<td>").addClass("tableCell").append(input).appendTo(trow);
}