我有一个简单的可编辑div,其中包含一些文本。 在onkeyup事件中,我想根据正则表达式替换整个div的内容(innerHTML)。
例如:
HTML:
some text, more text and $even more text
我计划编写一个函数,用于获取所有包含 $ 的文本(即上面的示例),并将其包装在 span 标签中:
```javascript function wrapTextWithSpan() { $("*:contains('$')").each(function() { var text = $(this).text(); var newText = text.replace(/\$/g, "$"); $(this).html(newText); }); } ```请注意,这个函数会查找文档中的每个元素,如果它包含 $ 则会将其替换为带有“highlight”类的 span 标签。
div.onkeypress = function() {
div.innerHTML.replace(/(some_regexp)/, "<span class='class'>$1</span>");
};
问题是在这样替换之后,光标跳转到 div 的开头。我希望它停留在替换前的位置。
我想象我必须在更改之前保存光标的坐标,然后以某种方式使用它们将光标设置回去,但我应该怎么做呢? :)
我尝试保存范围对象,但在编辑后,我认为它指向无处。
谢谢!