0

如何从范围中删除window.getSelection().anchorNode

我尝试了以下...

window.getSelection().getRangeAt(0).detach(window.getSelection().anchorNode);

...并且由于该方法的记录很差...

window.getSelection().getRangeAt(0).detach.window.getSelection().anchorNode;
4

2 回答 2

0

detach()方法Range仅用于在您完成后处理范围。它对范围来自的文档没有影响。

如果要从范围中删除范围的起始容器节点,可以执行

range.setStartAfter(range.startContainer);
于 2011-10-28T08:34:53.423 回答
0

虽然这并不能解决手头的问题(我没有提到),但这似乎确实从范围中删除了节点......

alert(window.getSelection().anchorNode.parentNode.nodevalue);

for (var k=0;k<window.getSelection().getRangeAt(0).commonAncestorContainer.childNodes.length;k++)
{
 if (window.getSelection().getRangeAt(0).commonAncestorContainer.childNodes[k].isSameNode(window.getSelection().anchorNode))
 {
  window.getSelection().getRangeAt(0).detach(window.getSelection().getRangeAt(0).commonAncestorContainer.childNodes[k]);
  break;
 }
}

alert(window.getSelection().anchorNode.parentNode.nodeName);
于 2011-10-28T19:41:03.950 回答