本文根据 Devhints / DOM Range 翻译。代码示例及版本范围沿用原文。
HTML 快速参考 DOM createRange API.
参考资料
创建范围
var range = document.createRange()
参见: https://devdocs.io/dom/document/createrange
方法
range
.setStart(startNode, startOffset)
.setEnd(endNode, endOffset)
.setStartBefore(node)
.setStartAfter(node)
.setEndBefore(node)
.setEndAfter(node)
.selectNode(node)
.selectNodeContents(node)
参见: https://devdocs.io/dom/range
折叠
range.collapse() // to end (a single point)
range.collapse(true) // to start (a single point)
range.collapsed // true | false
操作
range.cloneContents() // copy => DocumentFragment
range.extractContents() // cut => DocumentFragment
range.deleteContents() // delete
range.insertNode(node)
字符串
range.toString()
只读属性
range.collapsed // => true/false
range.startContainer // => Node
range.startOffset
range.endContainer // => Node
range.endOffset
range.commonAncestorContainer // closest of start and end containers