0

生成されたテーブル コードから各入力タグに一意の ID を追加しようとしました。デモ 私はこのようなコードが欲しい:

<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);

各入力タグに一意の ID を挿入するように変更するにはどうすればよいですか?

4

2 に答える 2

2

関数の外:

var currentId = 0;

あなたの機能では:

var input = $("<input />", {id: 'inp-' + ++currentId});

好きなものに置き換えinp-ますが、ID を数字で始めることはできません。

于 2012-06-02T14:40:43.120 に答える
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);
}
于 2012-06-02T14:40:34.670 に答える