本文作者: 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) 进行许可。