現在表示しているテーブルを作成するためにjQueryデータ型を使用しています。現在、私はそれを設定しているので、テーブルの行を選択すると、その行のテキストが別のパネルのテキストボックスに表示されます。次に、何かを入力して「保存」を押すと、その行のテキストが変更されます。私の現在の問題は、ボタンを使って新しい行を追加したときに、新しい行のテキストを編集できなくても、選択することができます。 例:3行あり、Test1を選択しています。 。次にAdd Rowをクリックして、新しい行を選択し、その行のテキストを変更しようとすると、以前に選択された行のテキスト(読み込み時にテーブル内にある行)が変更されます。 この問題を解決するにはどうすればよいですか?私はcell.data、cell.editを見てきましたが、それは私が現在さまざまな理由で使用していないエディタ用です。jQuery Datatableは新しく作成された行を編集できません
表:
:行を追加しますvar row = null;
$("#data-table tr td").click(function() {
$("#groupname").val($(this).text());
row = $(this);
$("#saverow").click(function() {
if (row != null) {
row.text($("#groupname").val());
}
});
});
:選択した行のテキストを変更する
(function() {
var table = document.querySelector('#data-table');
var textbox = document.querySelector('#groupname');
table.addEventListener('click', onTableClick);
function onTableClick (e) {
var tr = e.target.parentElement;
var data = [];
for (var td of tr.children) {
data.push(td.innerHTML);
}
textbox.value = data[0];
}
})();
:選択した行のテキストがテキストボックスに表示させるための
<div class="panel-body">
<table id="data-table" class="table table-striped table-bordered nowrap" width="100%">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>All</td>
</tr>
<tr class="even">
<td>Test1</td>
</tr>
<tr class="odd">
<td>Test2</td>
</tr>
</tbody>
</table>
<div class="col-md-8 col-md-offset-1">
<button type="submit" class="btn btn-sm btn-primary m-r-5" id="addbtn" >New Group</button>
</div>
</div>
//Text box
<div class="form-group">
<label class="col-md-4 control-label">Group Name:</label>
<div class="col-md-8">
<input type="text" id="groupname" class="form-control" value="Name"/>
</div>
</div>
コード
$("#addbtn").click(function() {
var t = $('#data-table').DataTable();
$('#data-table').dataTable();
t.row.add([
"New Group"
]).draw(false);
});
あなたの問題は重複したIDだと思います。 htmlドキュメントにはidのインスタンスが1つしかない場合があります。前の行のテキストを編集している理由は、ほとんどすべてのIDで選択しているため、ページ上の最初の結果しか見つからないためです。 – ebraley
選択したタグがクラスタグに追加されます。私は正常にHTMLにコード化しているすべての3行のテキストを変更することができますが、私は新しい行を追加すると、私はその行のテキストを変更することはできません。私はまだ他のすべての行のテキストを変更することができます。 –