1

DocRaptorというプログラムを使用して、HTMLページからExcelに表形式のデータをエクスポートする方法に取り組んでいます。PHPを使用してAPIを使用してデータを渡し、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 に答える