我有这段代码:
<html>
<head></head>
<body></body>
</html>
和$('html').html()
我只能得到:
<head></head>
<body></body>
我怎样才能得到整个代码?我的意思是,还有我使用.html()
...
答案 0 :(得分:2)
试试这个jQuery扩展:
jQuery.fn.outerHTML = function(s) {
return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html();
}
您可以这样称呼它:
$("html").outerHTML();
积分转到this page。
答案 1 :(得分:1)
有点黑客:
$('<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()
。
答案 2 :(得分:0)
我认为有很多方法,例如。 jQuery("html")[0].outerHTML;
或jQuery("html").attr("outerHTML");
编辑:这不是跨浏览器,我忘记了。 Firefox不支持此功能。有(克隆)黑客为此。
修改:有关FF支持,请参阅How do I do OuterHTML in firefox?。
答案 3 :(得分:0)
这个怎么样:
$('<div>').append($('html').clone()).remove().html();
答案 4 :(得分:0)
无论如何,如果您尝试获取<html>
并且它应该是正确文档中唯一的<html>
标记 - 为什么不手动将其添加到innerHTML?