我正在尝试使用名为DocRaptor的程序将一些表格数据从HTML页面导出到Excel。我正在使用PHP使用他们的API传递数据,然后将数据转换为Excel电子表格。
但我似乎无法通过整个表格(包括开场<table>
和关闭</table>
代码。
比如说我在HTML中有以下表格:
<table id="placement-table">
<tr id="row">
<td id="cell">Text1</td>
</tr>
<tr id="row1">
<td id="cell">Text2</td>
</tr>
<tr id="row2">
<td id="cell">Text3</td>
</tr>
<tr id="row3">
<td id="cell">Text4</td>
</tr>
</table>
现在,例如,如果我使用console.log($('#placement-table').html());
,我只得到以下输出:
<tbody><tr id="row">
<td id="cell">Text1</td>
</tr>
<tr id="row1">
<td id="cell">Text2</td>
</tr><tr id="row2">
<td id="cell">Text3</td>
</tr><tr id="row3">
<td id="cell">Text4</td>
</tr>
</tbody>
为什么我错过了实际的开始和结束<table></table>
标签?是因为.html()
只给出了给定元素内的内容吗?我意识到我只是将信息记录到控制台,但我只是这样做,所以我可以看到传递了什么,因此我注意到它缺少这些标签。
希望这是有道理的,如果不是,我可以更新问题!
答案 0 :(得分:3)
您可以使用outerHTML
:
$('#placement-table')[0].outerHTML
或:
var table = document.getElementById('placement-table').outerHTML
答案 1 :(得分:1)
来自Get selected element's outer HTML
(function($) {
$.fn.outerHTML = function() {
return $(this).clone().wrap('<div></div>').parent().html();
}
})(jQuery);
console.log($('#placement-table').outerHTML()); // <table>...</table>
答案 2 :(得分:0)
正确; html()获取您提供的元素的内容,而不是容器本身。最简单的解决方案是添加一个包装器div ...
答案 3 :(得分:0)
方法html
获取元素的innerHTML。你应该使用类似outerHTML
的东西,在jQuery中可以按如下方式完成:
var table = $("#placement-table").clone().wrap("<div />").parent().html();
console.log(table);