使用jquery将html表转换为字符串

时间:2013-05-31 19:10:34

标签: jquery html

我在字符串中有一些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>

我该怎么做?

3 个答案:

答案 0 :(得分:3)

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

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

你可以做到

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

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

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

答案 1 :(得分:0)

你可以试试这个 -

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

答案 2 :(得分:0)

纯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