【问题标题】:Converting html table to string using jquery [duplicate]使用jquery将html表转换为字符串[重复]
【发布时间】:2013-05-27 16:26:36
【问题描述】:

我在一个字符串中有一些 html,我需要从中提取一个表格。因此,例如,我的 htmlString 变量包含 (:

<html><head>....some head stuff</head><body><table>.... some table stuff</table>.... other body stuff</body></html>

所以,我尝试过的是: (打字,没有复制,所以可能有错别字)

var table = $( '' ).append( htmlString ).find( 'table' ).get();

如果我查看我的表变量,我确实看到了:

[<table>...</table>]

所以,我相信我正确地从 html 字符串中提取了表格。

现在,要将其转换回字符串,我执行以下操作:

var tableString = $( table[0] ).html();

我回来了:

<tbody> ... the table stuff ... </tbody>

但是,我想要的是:

<table> ... the table stuff ... </table>

我该怎么做?

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    jQuery 没有简单的方法来获取元素的“outerHTML”。而不是

    var tableString = $( table[0] ).html();
    

    你可以的

    var tableString = $(table[0]).clone().wrap('<div>').parent().html();
    

    或者,如果您不担心与真正旧的浏览器的兼容性:

    var tableString = $(table[0])[0].outerHTML;
    

    【讨论】:

    • 我相信这里还有其他很好的答案,但这是我使用的。
    【解决方案2】:

    你可以试试这个-

    $( table[0] )[0].outerHTML
    

    【讨论】:

      【解决方案3】:

      纯 JavaScript 版本:http://jsfiddle.net/Zahmu/

      var html = "<div><table><tbody></tbody></table></div>";
      
      var wrapper = document.createElement("div");
      wrapper.innerHTML = html;
      
      var table = wrapper.getElementsByTagName("table")[0];
      alert(table.outerHTML);
      

      在这种情况下,jQuery 并没有给你太多。您可能会受益于使用它来定位具有更复杂源字符串的表格元素,但解决方案的关键是outerHTML

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-27
        • 2011-02-23
        • 2017-06-28
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        相关资源
        最近更新 更多