4

我需要用跨度包围多个单词,我知道每个单词的 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);

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

4

1 回答 1

10

我想通了,我错过了 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);
于 2013-04-22T11:29:58.390 回答