是否可以查看DOM中的元素是否已更改?
在我的情况下,我有一个内容可编辑的表和一个访问每个表行的ID。我想知道哪些内容已被更改。
<table id="myTable">
…
<td id=“name:1" contenteditable=“true"></td>
<td id=“phone:1” contenteditable="true"></td>
<td id=“address:1” contenteditable=“true"></td>
<td id=“name:2" contenteditable=“true"></td>
<td id=“phone:2” contenteditable="true"></td>
<td id=“address:2” contenteditable=“true"></td>
…
</table>
<input type="hidden" id="inputMyTable" name="inputMyTable">
到目前为止,我使用DOM方法获取每个单元格的值并将其发送到服务器。然后在服务器端,对于I数据库中的每一行,检查该值是否已从db更改,然后升级db。
有更好的方法吗?
P.S。当我提交表单时,我使用此脚本将表值发送到服务器端代码
var data = [];
$("#myTable tr").each(function(rowIndex) {
$(this).find("td").each(function(cellIndex) {
data.push($(this).text());
});
});
$('#inputMyTable').val(data.join(";"));
然后服务器端我使用$_POST
来读取输出。
答案 0 :(得分:0)
可以使用Mutation Observers http://addyosmani.com/blog/mutation-observers/
在JavaScript中跟踪DOM更改我会保存对象中的更改并将其发送到focusout
$('[contenteditable]').on('focusout', function(e){prepare_data_and_send_to_server()});
然后在保存到数据库之前进行一些验证。