DOM中的范围

本文深入解析了DOM中范围(Range)的概念,展示了如何利用document.createRange()创建范围,并详细介绍了Range类型实例的属性如startContainer, endContainer, startOffset, endOffset及commonAncestorContainer。此外,还讲解了如何使用selectNode(), selectNodeContents(), setStart()和setEnd()等函数进行复杂范围的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

 

上述两个函数还可以用于选择节点的一部分

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值