如何使用detach从一个范围中删除第一个节点?

时间:2011-10-27 23:45:26

标签: javascript range detach

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

我试过以下......

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

......因为这个方法记录不清......

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

2 个答案:

答案 0 :(得分:0)

Range的{​​{3}}方法仅用于处理完成后的范围。它对范围来自的文件没有影响。

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

range.setStartAfter(range.startContainer);

答案 1 :(得分: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);