Javascript / jQuery在回调中使用旧的DOM对象

时间:2016-06-08 14:44:35

标签: javascript jquery dom

我使用以下脚本检索表:

$("#table").load("index #table", function(tableNew) { // code });

在我这样做之前,我喜欢将旧表存储在变量中。检索新表时,我想将其与旧表进行比较。

var tableCurrent = document.getElementById('table');
console.log(tableCurrent); // object

$("#table").load("index #table", function(tableNew) {
   var htmlNew = $.parseHTML(tableNew);
   var rowsNew = htmlNew[0].getElementsByTagName('tr');

   console.log(tableCurrent); // null

   // compare new with old

   // insert new table in DOM
});

如何“访问”'load'回调中的旧表?我知道旧表将被删除,这是正确的。

1 个答案:

答案 0 :(得分:1)

编辑:存储为jquery对象以避免命中旧引用,因为新的jQuery对象不是对旧表DOM元素的引用

var tableCurrent = document.getElementById('table');
console.log(tableCurrent); // object
var $tableCurrent = $('#table');

$("#table").load("index #table", function(tableNew) {
   var htmlNew = $.parseHTML(tableNew);
   var rowsNew = htmlNew[0].getElementsByTagName('tr');

   console.log($tableCurrent); // this should be the jquery table object
   console.log($tableCurrent[0]); // actual table element

   // compare new with old

   // insert new table in DOM
});