Javascript 遍历范围对象中的元素并对其进行更改

Javascript 遍历范围对象中的元素并对其进行更改,javascript,dom,Javascript,Dom,如何遍历范围对象中的元素并对其进行更改 用例: 一个扩展应该接受一个用户选择,并在其中包装一些文本引用链接中的法律 为此,我们需要: 遍历范围对象中的所有元素的步骤 用相同的文本替换某些文本节点的内容,但添加链接。 我知道如何做第一步: var sel = document.getSelection(); var range = sel.getRangeAt(0); var walker = document.createTreeWalker(range.cloneContents(), Nod

如何遍历范围对象中的元素并对其进行更改

用例: 一个扩展应该接受一个用户选择,并在其中包装一些文本引用链接中的法律

为此,我们需要: 遍历范围对象中的所有元素的步骤 用相同的文本替换某些文本节点的内容,但添加链接。 我知道如何做第一步:

var sel = document.getSelection();
var range = sel.getRangeAt(0);
var walker = document.createTreeWalker(range.cloneContents(), NodeFilter.SHOW_TEXT);
var node;
while (node = walker.nextNode()) {
  console.log(node);
  // we have a copy of an original text node here and can use a text of it
  // and can't change a text of an original node, just a text of copied one
}
我使用了上面的函数,它从Range对象的复制元素生成文档片段。是否有一种方法可以从Range对象中的原始元素生成文档片段?我还没有找到这样的函数。。。还有一个类似的函数-,但它从文档中删除元素