我使用以下脚本检索表:

$("#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
});


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

最佳答案

编辑:存储为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
});

10-06 07:39