我创建了一个显示数据的表格,当用户点击Update
按钮时,它会将表格单元格转换为用户可以输入数据的输入字段。
当我点击编辑按钮时,它成功地将表格的1个单元格更改为输入字段,但我无法理解如何更改表格的其他单元格,我需要单击更改表格的所有单元格。
$(document).on("click", ".updateUser", function() {
$(this).closest('tr').find('td:nth-child(2)').each(function() {
var html = $(this).html();
var input = $('<input type="text" />');
input.val(html);
$(this).html(input);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table class="table table-hover">
<thead>
<tr>
<th>#</th>
<th>Username</th>
<th>Password</th>
<th>Role</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<tr>
<td>ID</td>
<td>Username </td>
<td>Password </td>
<td>Role </td>
<td>
<button type="button" class="updateUser btn btn-primary btn-xs" data-userId="<?php echo $id; ?>">
EDIT BUTTON
</button>
</td>
</tr>
</tbody>
</table>
&#13;
我在JSFiddle
上添加了示例,请指导我如何实现这一目标。
答案 0 :(得分:3)
从选择器中删除nth-child(2)
。 nth-child(2)
仅导致第n个(在本例中为第二个)元素被选中并通过输入框循环/替换。
https://jsfiddle.net/g7vrskpz/4/
$(document).on("click", ".updateUser", function() {
$(this).closest('tr').find('td').each(function() {
var html = $(this).html();
var input = $('<input type="text" />');
input.val(html);
$(this).html(input);
});
});
编辑:仅限前3
https://jsfiddle.net/g7vrskpz/5/
$(document).on("click", ".updateUser", function() {
$(this).closest('tr').find('td:nth-child(1),td:nth-child(2),td:nth-child(3)').each(function() {
var html = $(this).html();
var input = $('<input type="text" />');
input.val(html);
$(this).html(input);
});
});