我在字符串中有一些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>
我该怎么做?
答案 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
。