我的文章框中包含属性value
为"Original Value"
的文章框。我们假设我已加载它并在文本框中键入“新值”。以下两个示例都应该返回-1
(我在Firefox控制台中尝试过它)。
// 1.
var wholecontento = "";
var wholecontento = document.documentElement.outerHTML;
alert(wholecontento.search("New Value"));
// 2.
var wholecontento = "";
var wholecontento = document.body.outerHTML;
alert(wholecontento.search("New Value"));
但是它们都返回大于1
的整数。我该如何解决?
答案 0 :(得分:1)
这是一种正确的行为。您使用DOM(文档对象模型)获取HTML字符串,它反映了您在浏览器中看到的当前HTML页面(包括更改的内容)
如果您需要保留文本框的旧值,则需要:
document.body.outerHTML
以供日后使用。
//jQuery code
$.get(window.location.href, function (resp) {
// store the resp.data on some object
var sourceHTML = resp.data;
})
.fail(function (resp) {
// error handling
});

在下面添加了Paul S的评论
document.body.outerHTML
仅包含<body>
部分。这个
(new XMLSerializer).serializeToString(document)
将为您提供整个<html>
,包括<!DOCTYPE html>