【问题标题】:Assign and retrieve an html table to a javascript variable with jQuery使用 jQuery 将 html 表分配和检索到 javascript 变量
【发布时间】:2012-11-06 12:27:55
【问题描述】:

我想备份一个 html 表,然后使用 jquery 对其进行过滤:

$('.row').closest('td').not(':contains(' + v + ')').parent('tr').remove();

因为我做了 remove() 我必须备份之前的行:

var allTable = $('#mytable').html();

然后,当执行过滤器时,我会返回之前的表格数据:

$('#mytable').html($(allTable));

但这不起作用。如果我这样做:

alert($(allTable).filter('tr').length);

在第一个赋值之后,返回零行。

拜托,你能帮帮我吗?

【问题讨论】:

  • 不要删除,只是隐藏。

标签: javascript jquery html


【解决方案1】:

filter() 用于在元素数组中查找元素。这不是你需要的。您正在寻找 find() 另一个中的子元素。此外,存储 HTML 只是为了将其转换回 jQuery 对象有点多余 - 您也可以只存储 jQuery 对象本身。试试这个:

var $table = $('#mytable');
$table.remove(); // use your existing logic here
alert($table.find('tr').length);
$table.appendTo('body'); // add the table back in to the DOM when conditions are met

Example fiddle

【讨论】:

    【解决方案2】:

    我在使用高亮功能时遇到了类似的问题。我通过将表克隆到隐藏的 div 并从那里而不是从变量中恢复它来解决它。见jquery highlight() breaking in dynamic table

    【讨论】:

      【解决方案3】:

      这个问题你解决了吗?

      我建议一种解决方法。

      不要使用您的克隆表,而是制作它的(临时)副本并将其用于警报。

      var alertTable = allTable;
      alert($(alertTable).filter('tr').length);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多