2012-09-17 49 views
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()只給出給定元素內的內容?我意識到我只是將信息記錄到控制檯,但我只是這樣做,所以我可以看到傳遞的是什麼,因此我注意到它錯過了這些標籤。

希望這是有道理的,如果不是,我可以更新問題!

+0

相對於jquery文檔,.html()方法只給出了html內容http://api.jquery.com/html/ – fatiDev

回答

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> 
+0

優秀。謝謝。 – zik

0

正確; html()獲取你提供的元素的內容,而不是容器本身。最簡單的解決方案是添加包裝div ...

+0

好的非常感謝。我也這麼想。謝謝你的幫助。 – zik

0

方法html獲取元素的innerHTML。你應該使用類似outerHTML,這在jQuery的可以做如下:

var table = $("#placement-table").clone().wrap("<div />").parent().html(); 
console.log(table); 
3

您可以使用outerHTML

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

或:

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

http://jsfiddle.net/eQRL3/

+0

可愛的。謝謝你會試試這個。 – zik

相關問題