remove() не раюотает или я не правильно использую. span не совсем то. Вот код
let span = document.createElement("span");
const get_selected_text=()=> {
let txt = window.getSelection().toString();
if (!txt) return false;
let range = window.getSelection().getRangeAt(0);
let selectionContents = range.extractContents();
span.appendChild(selectionContents);
range.insertNode(span);
var redactor = '';
redactor += '<div class="mb-3 editor">'
redactor += '<textarea id="select-text" class="form-control mb-3 mt-3" rows="3" cols="100%" name="select-text"></textarea>'
redactor += '<button type="button" onclick="saveText()" class="btn btn-sm btn-primary mr-3">Save</button>'
redactor += '<button type="button" onclick="canselText(this)" class="btn btn-sm btn-primary ">Cansel</button>'
redactor += '</div>'
$('.icms-content-fields').append(redactor);
let editor = document.querySelector('#select-text');
editor.value = txt;
editor.focus();
}
document.querySelector('.f_content > .value').onmouseup = get_selected_text;
const saveText = () => {
var editor = document.querySelector('#select-text');
if (span.parentNode) span.replaceWith(editor.value);
editor.value = span.innerHTML = "";
var div = document.querySelector('.f_content > .value');
var new_text = $(div).html();
...
//ajax запрос
}
function canselText(e){
//?????
}