不能在范围设置的环绕内容.启动set.setEnd

chi*_*eas 4 javascript range

我需要用跨度包围多个单词,我知道每个单词的startIndex和endIndex(我确定没有单词将跨越多个标签,所有单词都在同一个单元中)我甚至无法选择第一个单词,我得到"IndexSizeError:索引或大小是负数或大于允许的数量"和类似的错误与rangy(http://jsfiddle.net/pastrocchio/hgugQ/7/)我做错了什么?

var range = document.createRange();
startNode = document.getElementById("texttocheck");

range.setStart(startNode, 0);
range.setEnd(startNode, 4);

var newNode = document.createElement("span");
range.surroundContents(newNode);
Run Code Online (Sandbox Code Playgroud)

这里是小提琴:http://jsfiddle.net/pastrocchio/hgugQ/3/

chi*_*eas 8

我想通了,我错过了startnode.firstChild

var range = document.createRange();
startNode = document.getElementById("texttocheck");

range.setStart(startNode.firstChild, 0);
range.setEnd(startNode.firstChild, 4);

var newNode = document.createElement("span");
range.surroundContents(newNode);
Run Code Online (Sandbox Code Playgroud)