我有这样的代码:
<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