如何在javascript中包围文本部分的跨度?

我有这样的标记:

one two three four

我想用javascript将其转换为:

 

one two three four

我有一个我希望在一个范围内包裹的部分的偏移量和长度,在这种情况下offset = 4length = 9 。 如果使用jQuery可以使它更容易,那就更好了。

这不是一个问题的重复吗? 用jQuery突出显示一个单词

像JQuery搜索高亮插件这样的东西可能会有所帮助

或者,正如在同一个问题中指出的那样 ,编写自己的jquery函数:
像(未经测试的代码,随意编辑):

 jQuery.fn.addSpan = function (elName, str, offset, length) { if(this.innerHTML = str) { return this.each(function () { this.innerHTML = this.innerHTML.substring(0,offset) + "" + this.innerHTML.substring(offset, offset+length) + "" + this.innerHTML.substring(offset+length)); }); } }; 

你会像这样使用它:

 $("p").addSpan("one two three four", 4, 9);