【发布时间】:2015-05-18 22:09:21
【问题描述】:
我有一个 HTML 文档,我想根据标签是否在当前选择范围内,使用 Javascript 动态删除其中的一些标签。但是,我不想更新页面上的实际文档,我想复制整个页面的 HTML 并编辑该副本。问题是我从selection.getRangeAt(0) 得到的Range 对象仍然指向原始文档,据我所知。
我已经设法使用此代码编辑原始文档:
var node = window.getSelection().getRangeAt(0).commonAncestorContainer;
var allWithinRangeOfParent = node.getElementsByTagName("*");
for (var i=0, el; el = allWithinRangeParent[i]; i++) {
// The second parameter says to include the element
// even if it's not fully selected
if (selection.containsNode(el, true) ) {
el.remove();
}
}
但我想做的是以某种方式执行与删除元素相同的操作,但将它们从原始 HTML 的 副本 中删除。我做了这样的副本:var fullDocument = $('html').clone();我怎么能做到这一点?
【问题讨论】:
标签: javascript html dom range selection