3

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

我怎样才能做到这一点?

4

3 回答 3

3

jQuery 没有简单的方法来获取元素的“outerHTML”。代替

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

你可以做

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

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

var tableString = $(table[0])[0].outerHTML;
于 2013-05-31T19:13:55.907 回答
0

你可以试试这个——

$( table[0] )[0].outerHTML
于 2013-05-31T19:12:47.187 回答
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.

于 2013-05-31T19:18:17.890 回答