范围的组成
一个范围包括两个边界点,即一个开始点和一个结束点。
范围是在Element节点、document节点或Text节点中讨论的。当在Element或Document中设置范围边界,首先确定range.startContainer属性值,此属性一般指向范围内第一个节点的父节点;再接着使用range.startOffset属性定义边界点的位置,startOffset属性值等于startContainer属性指向的节点所容纳范围内第一个元素在其子元素集合中的索引值。类似地,range.endContainer指向范围内最后一个节点的父节点,tendOffset属性值等于endContainer属性指向的节点所容纳范围内最后一个元素在其子元素集合中的索引值+1。
当startContainer(endContainer)是文本节点、注释节点或CDATA节点时,startOffset(endOffset)用以确定节点所包含的文本位置,startOffset代表跳过的字符数量,endOffset代表范围之外的第一个字符的位置。