Я пытаюсь создать раздел комментариев, который позволяет пользователям @ someone. Когда пользователь вводит @random, а затем пробел, я хочу, чтобы он был выделен. Итак, я создал что-то, что ищет и заменяет строку, но потом, когда заменяется html, он помещает курсор в начало. Любой способ решить это? Любой другой способ сделать что-то подобное?
$('#textarea').keyup(function() {
txt = this.innerText.split(" ")
new_txt = this.innerText
for (var i = txt.length - 1; i >= 0; i--) {
if (txt[i].startsWith('@') == false) {
delete txt[i]
}
}
txt = txt.sort().join(" ").trim().split(" ")
console.log(txt)
if (txt.length > 0 && txt[0] != "") {
for (var i = 0; i < txt.length; i++) {
new_txt = new_txt.replace(txt[i], '<mark>' + txt[i] + '</mark>')
}
$('#my_console_log').text(new_txt)
this.innerHTML = new_txt
}
});
pre {
border: solid black 1px;
}
mark {
background: blue;
color: red;
}
Test page