Javascript 使用jQuery读取div内容会跳过HTML、head和body标记

Javascript 使用jQuery读取div内容会跳过HTML、head和body标记,javascript,jquery,html,Javascript,Jquery,Html,我正在阅读一个HTML模板,并将其从服务器端代码添加到div(我已经设置了runat='server')。这将完美地呈现和显示页面上的HTML。现在,我在客户端更改呈现的HTML中的文本,并希望在服务器端读取更新的文本(div中的完整HTML)以更新模板。因此,我已经采取了一个隐藏字段和保存更新的HTML的div像这样点击保存按钮 $('#btnSaveTemplate').click(function () { $('#UpdatedEmailTemplate').va

我正在阅读一个HTML模板,并将其从服务器端代码添加到div(我已经设置了runat='server')。这将完美地呈现和显示页面上的HTML。现在,我在客户端更改呈现的HTML中的文本,并希望在服务器端读取更新的文本(div中的完整HTML)以更新模板。因此,我已经采取了一个隐藏字段和保存更新的HTML的div像这样点击保存按钮

$('#btnSaveTemplate').click(function () {
            $('#UpdatedEmailTemplate').val($('#divEmailBody').html());
});
HTML模板:



数据库停用通知–重要通知

以下数据库计划在4周内从{SentDate}开始退役

您为什么收到此电子邮件?

您作为ITAO/ITAO代表/CSM/CSM-1/数据库的关键技术联系人收到此电子邮件,该数据库计划在30日前退役。以下是已识别的应用程序。

使用Javascript

var html = document.getElementsByTagName('html')[0];
var text = '<html>' + html.innerHTML + '</html/>';
var html=document.getElementsByTagName('html')[0];
var text=''+html.innerHTML+'';
使用jQuery:

var text = '<html>' + $('html').html() + '</html/>';
var text=''+$('html').html()+'';

如果是模板,则不要将其添加到任何html元素,如div。。改为使用脚本标记

<script id="UpdatedEmailTemplate" type="text/x-template">
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <p>
        <strong><u>Database Decommission Notice – IMPORTANT NOTIFICATION</u></strong>
    </p>
</body>
</html>
</script>


数据库停用通知–重要通知


若您将模板附加到div,它就不会保持原样,浏览器会自行进行调整,使页面成为有效的html。在一个页面中不能有两个html标记,所以浏览器会自动删除另一个。身体也一样。HTML从不抛出错误,但它自己修复错误。。有时修复和我们想要的不一样。这就是为什么在DOM中有有效的html

UpdatedEmailTemplate和DiveEmailBody在哪里很重要?您的错误已经出现在尝试将完整的html文档填充到div中的点上。这当然是无效的html,因此浏览器将丢弃在此上下文中无法理解的元素。