jQuery(“html”)。html()似乎检索了大部分内容,但包装标记除外。
DOM经过大量修改,因此原始资源的使用并不多。
编辑:jQuery(“”)。append(jQuery(“html”)。clone())。html()几乎可以工作,除了doctype。有没有简单的方法来获得它?
编辑2:我需要doctype主要是为了获得适当的怪癖/几乎标准/标准模式。 document.compatMode有一半,是不够的?
答案 0 :(得分:2)
jQuery使用innerHTML
来获取HTML。您不会使用此属性获取确切的DOM状态。例如,input
框的内容或select
框的状态将不会保持不变,除非您在调用innerHTML
之前正确修改它。
您正在谈论的这个wrapping
标签是什么?对于大多数情况,innerHTML应该可以正常工作。
例如,我将此代码用于select
和input
框的状态。
// it's defaultValue so we can use innerHTML
$("#divContentInside input").each(function () {
this.defaultValue = this.value;
});
// go through each select and replace
// it's selection so we can use innerHTML
$("#divContentInside select > option").each(function () {
if (this.selected) {
this.setAttribute("selected", true);
} else {
this.removeAttribute("selected");
}
});
我没有发现其他元素的状态一致性问题,但可能存在。
答案 1 :(得分:1)
您可以使用标准DOM命令:
获取HTML标记的innerHTML
document.body.parentNode.innerHTML
获取Doctype信息
document.body.parentNode.previousSibling;
答案 2 :(得分:0)
http://brandonaaron.net/blog/2007/06/17/jquery-snippets-outerhtml/ jquery的outerHTML实现。
修改
快速搜索来自document.doctype选项here is a full reference。删除了旧的和现在不必要的文本/代码。
答案 3 :(得分:-2)
您是否尝试过$(document).html()