我阅读了 HTML 页面的所有内容,然后将其显示在上面。唯一的区别是我想在脚本中更改页面的某些部分。于是就有了如下代码:
function getHTML() {
return "<!DOCTYPE html>\n" + $('html')[0].outerHTML;
}
var page = getHTML();
$(".body-block pre code").text(page);
但我不知道如何使用page. 也就是说,例如,我想将内容更改"pre code"为任何其他文本,甚至不止一次。通常我会这样做:
$("pre code").text("Новый текст");
但
var page = getHTML();
console.log(page.find("pre code").text());
会报错:
jQuery.Deferred 异常:page.find 不是函数 TypeError:page.find 不是函数
项目中的 HTML 绝对是任何页面的代码,到目前为止,我只有基本的 HTML,我只是在测试新的想法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Tests</title>
<meta name="description" content="Tests">
<meta name="author" content="Telion">
<link rel="stylesheet" href="assets/css/reset.css?v=1.0">
<link rel="stylesheet" href="assets/css/main.css?v=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="body-block">
<pre><code>Hello World!</code></pre>
</div>
<script src="assets/js/main.js"></script>
</body>
</html>
只想到正则表达式,但我不想打扰它们。这个问题有更好的解决方案吗?如果有更方便的选择,所有这些代码至少可以完全重写,我还没有想出更好的方法......
总的来说,事实证明您可以克隆对象,这非常方便和简单。以下代码解决了我的问题: