Jquery克隆原始HTML而不是DOM

3
我需要克隆一段已经在DOM中被修改的标记。我想要获取原始HTML源代码 - 可以在“视图”>“源”中看到。
clone()使用的是DOM中的内容。
5个回答

7

你不能这样做。

如果需要,可以在进行任何修改之前将原始标记存储在JavaScript变量中。


2

在操作DOM之前,尝试将其放入变量中。我使用这种方法来进行jQuery模板化... var template = $('#template').html()


请注意,如果您想在“script”标记执行之前(例如创建小部件)捕获它们,则此行可能需要位于文件顶部。此外,您需要在$(document).ready()中执行此操作,以便能够使用jQuery,并且您希望处于readyList队列的前面,因此该行必须位于文件顶部。 - Curtis Yallop
这里有一些纯JavaScript代码可以实现它。它可以在jQuery加载之前立即运行。 - Curtis Yallop
myHtml = document.getElementById('template').parentNode.innerHTML; 将模板的父元素的 innerHTML 存储到 myHtml 中; - Curtis Yallop

1
一个简单的方法是在隐藏的 div 中保留原始标记。然后,克隆那个隐藏的内容。
另一种选择是通过 AJAX 请求检索原始文档,然后从那里加载要复制的 HTML。

0

0

在更改 DOM 之前,您需要将该 HTML 复制到某个地方。任何给定时间点 DOM 当前具有的是您可以访问的内容,而不是过去/未来版本,除非您明确将它们保存到某个地方。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接