我正在浏览范围对象的文档,我对范围对象的start容器属性感到有点困惑。我假设start容器始终是一个文本节点,但书中说start容器也可以表示一个元素。
有人能给我一个例子,突出显示何时会出现这种情况?
答案 0 :(得分:4)
DOM范围可以表示文档的任何连续部分,其边界可以是文档中的任何位置(包括注释,实体和属性节点内)。它不仅用于选择(尽管在HTML脚本中是最常用的)。
如果边界容器节点是元素,则偏移量是边界之前容器的子节点数。例如,查看以下范围(由管道分隔):
<div id="foo"><img src="1.png">|<img src="2.png">|<img src="3.png"></div>
这里根本没有文字节点。范围开始位于div的一个子节点之后,结束位于两个子节点之后。可以按如下方式创建此范围:
var div = document.getElementById("foo");
var range = document.createRange();
range.setStart(div, 1);
range.setEnd(div, 2);