本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/04/20/JavaScript%E4%B8%AD%E7%9A%84Range/
摘要
本文主要讲述了:
- 作用
- 构造函数
- 实例属性
- 原型方法
正文
作用
描述范围
注意:
Range可以描述网页外的范围Range可以描述不可见元素的范围Range无法准确描述表单控件内的范围
示例:Range可以描述网页外的范围
1 |
|
示例:Range可以描述不可见元素的范围
1 |
|
示例:Range无法准确描述表单控件内的范围
1 |
|
构造函数
new Range()
实例属性
startContainer
起始节点
注意:和Selection中的anchorNode不同,遵循从上到下,从左到右的原则确定起点
示例:
1 |
|
startOffset
起始节点中的偏移量
endContainer
终止节点
注意:和Selection中的focusNode不同,遵循从上到下,从左到右的原则确定终点
示例:
1 |
|
endOffset
终止节点中的偏移量
collapsed
起点和终点是否为相同的点
commonAncestorContainer
起始节点和终止节点共有的父节点
原型方法
setStart
设置起点及偏移
如果起点不为文本节点,偏移值表示起点的子节点列表的索引。即startNode.childNodes的索引
setEnd
设置终点及偏移
如果终点不为文本节点,偏移值表示终点的子节点列表的索引。即endNode.childNodes的索引
示例:
1 |
|
setStartBefore
在指定元素前设置起点
setStartAfter
在指定元素后设置起点
setEndBefore
在指定元素前设置终点
setEndAfter
在指定元素后设置终点
示例:
1 |
|
selectNode
将选定的节点及其内容列入Range实例
selectNodeContents
将选定的节点内容列入Range实例
collapse
折叠Range实例到起点或是终点
cloneRange
深拷贝Range实例
deleteContents
删除Range实例包含的内容
getBoundingClientRect
获取Range实例相对于 viewport 的布局信息
insertNode
在Range实例的起点插入 DOM 节点
intersectsNode
判断Range实例包含的内容是否与指定节点相交
toString
Range实例包含的文本
注意:由于Range无法准确描述表单控件内的范围,故Range.prototype.toString()同样无法准确获取表单控件内的范围所包含的文本,而会返回空字符串
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/04/20/JavaScript%E4%B8%AD%E7%9A%84Range/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2020/04/20/JavaScript%E4%B8%AD%E7%9A%84Range/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。