DOM范围
-
DOM中的范围
startContainer
startOffset
endContainer
endOffset
使用DOM实现简单选择
selectNode()
selectNodeContents()
setStartBefore()
setStartAfter()
setEndBefore()
setEndAfter()
使用DOM实现复杂选择
-
setStart(refNode, offset)
refNode
会变成startContainer
-
setEnd(refNode, offset)
refNode
会变成endContainer
操作DOM范围中的内容
-
deleteContents()
-
extractContents()
从文档移除范围选区
返回值:范围的文档片段(DocumentFragment)
-
cloneContents()
插入DOM范围中的内容
-
insertNode()
-
surroundContents()
环绕范围插入内容
折叠DOM范围
collpase()
参数:
true
:折叠到范围起点false
:折叠刀范围终点
比较DOM范围
compareBoundaryPoints(比较方式常量值,比较范围)
比较方式常量值
Range.START_TO_START(0)
Range.START_TO_END(1)
Range.END_TO_END(2)
Range.END_TO_START(3)
返回值:
第一个范围中的点在第二个范围中的点
- 之前:
-1
- 相等:
0
- 之后:
1
复制DOM范围
cloneRange()
清理DOM范围
detach()
使用完范围后最好调用该方法,以便从文档中分离出该范围
之后就可以放心地解除对范围的引用,让垃圾回收机制回收其内存
range.detach(); range = null;