检查DOM元素的更改值

时间:2015-06-02 21:26:13

标签: javascript jquery dom

是否可以查看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来读取输出。

1 个答案:

答案 0 :(得分:0)

可以使用Mutation Observers http://addyosmani.com/blog/mutation-observers/

在JavaScript中跟踪DOM更改

我会保存对象中的更改并将其发送到focusout

上的服务器
$('[contenteditable]').on('focusout', function(e){prepare_data_and_send_to_server()});

然后在保存到数据库之前进行一些验证。