我有桌子,我需要改变其中的一些东西。我想通过ajax来做到这一点:用户点击“更改”按钮,一些字段转换为可编辑,然后用户可以保存它。代码很简单:
$(".edit_button").click(function(event){
event.preventDefault();
var trContainer = $(this).closest('tr');
trContainer.replaceWith(content);
});
在原始代码中,我通过 $.GET 下载页面,然后将其存储在“内容”变量中。结构是(简化的):
<tr>
<form>
<td></td> // -- note, <td> are inside of <form>
<td></td>
</form>
</tr>
所以,我希望表格行会改变。而且它正在改变!......但问题是,加载元素的 DOM 被破坏了。一切都脱离了形式标签。我使用 Google Chrome 控制台观看 DOM,我看到替换的 DOM 看起来像(简化)
<tr>
<form></form> // -- here, why <form> is empty?
<td></td>
<td></td>
</tr>
所以,我的输入标签没有包装在表单中。
我建立了简约的例子,检查一下。单击“更改”,然后观察 DOM 并将其与内容字符串进行比较。