1

我正在研究一种使用名为 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()只给你给定元素内部的内容吗?我意识到我只是将信息记录到控制台,但我只是这样做,所以我可以看到正在传递的内容,因此我注意到它缺少这些标签。

希望这是有道理的,如果没有,我可以更新问题!

4

4 回答 4

3

您可以使用outerHTML

$('#placement-table')[0].outerHTML

或者:

var table = document.getElementById('placement-table').outerHTML

http://jsfiddle.net/eQRL3/

于 2012-09-17T11:46:45.047 回答
1

获取选定元素的外部 HTML

(function($) {
  $.fn.outerHTML = function() {
    return $(this).clone().wrap('<div></div>').parent().html();
  }
})(jQuery);

console.log($('#placement-table').outerHTML());    // <table>...</table>
于 2012-09-17T11:49:48.903 回答
0

正确的; html() 获取您提供的元素的内容,而不是容器本身。最简单的解决方案是添加一个包装器 div ...

于 2012-09-17T11:45:27.907 回答
0

方法html获取元素的 innerHTML。您应该使用类似的东西outerHTML,在 jQuery 中可以按如下方式完成:

var table = $("#placement-table").clone().wrap("<div />").parent().html();
console.log(table);
于 2012-09-17T11:45:45.033 回答