web之createRange

创建range对象

1
var range = document.createRange()

选择节点

1
p1 = document.getElementById("p1");

选择整个节点,包括子节点

1
range.selectNode(p1);

选择节点的子节点

1
range.selectNodeContents(p1);

需要精细选择节点,要用到的是 setStart() 和 setEnd() 个方法都接受两个参数:一个参照节点,一个节点偏移量

1
2
3
p1 = document.getElementById("p1").childNodes[0];
range.setStart(p1,2);
range.setEnd(p1,8);

元素的大小

1
range.getBoundingClientRect().width;

https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect