Javascript 关于浏览器范围对象的“开始容器”属性的混淆

Javascript 关于浏览器范围对象的“开始容器”属性的混淆,javascript,html,range,Javascript,Html,Range,我正在浏览range对象的文档,对range对象的start container属性有点困惑。我假设开始容器总是一个文本节点,但书中说开始容器也可以表示一个元素 谁能给我举个例子,说明什么时候会发生这种情况 DOM范围可以表示文档的任何连续部分,其边界可以是文档中的任何位置(包括注释、实体和属性节点)。它不仅仅用于选择(尽管在HTML脚本中这是最常用的) 如果边界容器节点是元素,则偏移量是边界之前容器的子节点数。例如,查看以下范围(由管道分隔): DOM范围可以表示文档的任何连续部分,其边界可以

我正在浏览range对象的文档,对range对象的start container属性有点困惑。我假设开始容器总是一个文本节点,但书中说开始容器也可以表示一个元素


谁能给我举个例子,说明什么时候会发生这种情况

DOM范围可以表示文档的任何连续部分,其边界可以是文档中的任何位置(包括注释、实体和属性节点)。它不仅仅用于选择(尽管在HTML脚本中这是最常用的)

如果边界容器节点是元素,则偏移量是边界之前容器的子节点数。例如,查看以下范围(由管道分隔):


DOM范围可以表示文档的任何连续部分,其边界可以是文档中的任何位置(包括注释、实体和属性节点)。它不仅仅用于选择(尽管在HTML脚本中这是最常用的)

如果边界容器节点是元素,则偏移量是边界之前容器的子节点数。例如,查看以下范围(由管道分隔):


谢谢蒂姆!这大大简化了事情。关于这一点,我还有一个问题。如果不以编程方式创建范围(意味着用户在页面中选择一些文本),上述场景是否可能发生?@Gunner4Life:Yes。尝试选择以下示例中的一个或多个图像:谢谢Tim!这大大简化了事情。关于这一点,我还有一个问题。如果不以编程方式创建范围(意味着用户在页面中选择一些文本),上述场景是否可能发生?@Gunner4Life:Yes。正在尝试选择以下示例中的一个或多个图像:
<div id="foo"><img src="1.png">|<img src="2.png">|<img src="3.png"></div>
var div = document.getElementById("foo");
var range = document.createRange();
range.setStart(div, 1);
range.setEnd(div, 2);