使用jquery将html表转换为字符串[重复]
Posted
技术标签:
【中文标题】使用jquery将html表转换为字符串[重复]【英文标题】:Converting html table to string using jquery [duplicate] 【发布时间】: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>
我该怎么做?
【问题讨论】:
【参考方案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
https://developer.mozilla.org/en-US/docs/Web/API/element.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
。
【讨论】:
以上是关于使用jquery将html表转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 js 或 jQuery 强制空格从 HTML 输入字段转换为 %20 [重复]
使用 JavaScript 将 HTML DOM 结构(或克隆)转换为 JSON,可能的 JQuery [重复]