1.范围:通过范围可以选择文档中的一个区域,不必考虑节点的界限。使用document.createRange()方法可以创建范围(Range类型的实例)。新创建的范围直接与创建他的文档关联在一起,不能用于其他文档。
使用Range类型的实例(范围)来选择文档的一部分可以使用selectNode(DOM节点)和selectNodeContents()函数
Range类型的实例的属性和方法:
① startContainer:包含范围起点的节点(即范围起点的父节点)
② endContainer:包含范围终点的节点(即范围终点的父节点)
③ startOffset:范围起点在startContainer节点的偏移量。若1. startContainer为文本节点,注释节点,或CDATA节点,那么startOffset为范围起点之前跳过的字符数量。2. startContainer为其他节点,那么startOffset为startContainer到范围的起始节点的子节点的数量。
④ endOffset:范围终点在endContainer节点的偏移量。若1. endContainer为文本节点,注释节点,或CDATA节点,那么endOffset为范围终点之前跳过的字符数量。2. endContainer为其他节点,那么endOffset为endContainer到范围的终止节点的子节点的数量。
⑤ commonAncestorContainer:startContainer 和 endContainer 共同的祖先节点
情况二:startContainer为其他节点:
情况二:endContainer为其他节点:
2. 创建复杂的范围使用setStart()和setEnd()函数,参数为参照节点(startContainer)和一个偏移量(startOffset)
上述两个函数还可以用于选择节点的一部分