我有這樣的代碼:
<html>
<head></head>
<body></body>
</html>
與$('html').html()
我只得到:
<head></head>
<body></body>
我怎樣才能得到整個代碼?我的意思是,我也使用元素的父母.html()
...
我有這樣的代碼:
<html>
<head></head>
<body></body>
</html>
與$('html').html()
我只得到:
<head></head>
<body></body>
我怎樣才能得到整個代碼?我的意思是,我也使用元素的父母.html()
...
黑客攻擊的一位:
$('<div />').html($('html').clone()).html();
可能與頁面上有許多HTML的舊版本瀏覽器慢,因爲它有克隆整個事情。
編輯:如果你想要一個jQuery的功能,這樣做,只寫一個:
$.fn.outerHtml = function (a) {
if (a) {
a = $(a).insertBefore(this);
this.remove();
return a;
}
return $('<div />').html($('html').clone()).html();
};
然後,只需調用$('html').outerHtml()
。
我認爲有很多方法,例如, jQuery("html")[0].outerHTML;
或jQuery("html").attr("outerHTML");
編輯:這不是跨瀏覽器,我忘記了。 Firefox不支持這一點。有(克隆)黑客的。
編輯:有關FF支持,請參見How do I do OuterHTML in firefox?。
'outerHTML'是僅限IE的。 – BoltClock
這個怎麼樣:
$('<div>').append($('html').clone()).remove().html();
無論如何,如果你正在試圖獲得<html>
,它應該是一個正確的文檔中的唯一<html>
標籤 - 爲什麼不將它添加手動給它的innerHTML?
試試這個jQuery的擴展:
jQuery.fn.outerHTML = function(s) {
return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html();
}
你可以這樣調用:
$("html").outerHTML();
現金去this page。
一方面,從技術的角度來看,這似乎是一個有趣的問題,但另一方面:爲什麼要用''來做這個?對於我見過的95%的網頁,您只需說出「」+ $(「html」)。html()+「」'。 – nnnnnn