我有一个 contenteditable div 并尝试用标签替换<font>
标签,<span>
但是在使用 jQueryreplaceWith()
函数替换 html 后,光标默认为文本的开头,但我希望它在替换 html 的末尾。
这是重现该问题的演示。让我知道重现该问题是否有任何问题。
这是演示代码要点
<div id="test" contenteditable=true>
<p> <font color="blue">Text to be replaced</font> </p>
</div>
<a id="replace" href="javascript:void(null);">replace</a>
JS代码
$('#test').focus();
$('#replace').on({
mousedown: function (event) {
event.preventDefault();
},
click: function () {
$('#test').find('font').replaceWith(function () {
return '<span style="color:red">' + 'New Text' + '</span>'
});
}
});
编辑:这里的问题听起来可能是重复的,但是当您看到内容被替换时,它确实有所不同。我可能会替换用户选择的部分文本,而不是整个文本。所以我需要将光标放在替换原始 html 的 html 的末尾。