内容可编辑 DIV 中的大量替换

Massive replacing in a contentEditable DIV

本文关键字:替换 DIV 编辑      更新时间:2023-09-26

几天我一直在搜索这个,但我找到的所有内容都带有选定的文本。我需要"加粗"与"测试"匹配的可争议可编辑 DIV 中的所有单词。

我一直在搞砸从 DIV 获取 innerText 并用粗体更改这些单词,但是光标丢失了,当再次使用 innerHTML 进行更改时,光标会位于开头。所以我开始直接在 DIV 上进行这些更改,我唯一发现的是 execCommand,但据我所知,您必须首先选择文本,然后一个接一个地进行更改。我想阅读所有 DIV 并即时进行更改,这可能吗?有没有办法将 execCommand 与正则表达式结合起来?

请给我一些光! :)

如果要在

内容可编辑的div中加粗单词,则相当于在给定单词周围放置<strong>标签。

所以,我相信你的问题可以通过首先定义一个正则表达式来解决,用一个"g"标志表示全局

var boldText = "test"
var testRegEx = new RegExp(boldText, "g")

然后,其中$div是 JQuery 对象,表示要修改其内容的div 集合(或一个):

$div.html($div.html().replace(textRegEx,"<strong>" + boldText + "</strong>"))