如何在范围中找到节点,然后将其删除?

时间:2010-04-21 11:15:59

标签: javascript clone range

我正在从页面复制一个范围并将其粘贴回其他地方,但是当它包含我不想复制的页面时会出现问题。是否有一种通过id从范围中删除节点的好方法?或者如果没有,如果页面上有两个具有相同id的节点,是否有任何方法可以识别另一个节点(即,首先指定唯一的父ID?)

注意:只请JavaScript - 我不能使用库来解决此问题。

1 个答案:

答案 0 :(得分:2)

如果您正在谈论DOM范围,解决方案是围绕要排除的节点拆分范围,为您提供两个范围。

// Assuming you have a Range stored in a variable called range and
// a node you want to exclude in a variable called node
var newRange = range.cloneRange();
range.setEndBefore(node);
newRange.setStartAfter(node);

这在IE< = 8中不起作用,它具有完全不同的表示范围的方式。