Después de investigar en Internet, no pude encontrar una respuesta que se ajustara a mi problema. Así que tengo un div editable y el método de reemplazo de una cadena no funciona. Entonces, la idea es que quiero reemplazar la subString con nada (""). La subString es simplemente una frase, no el texto completo en el div. Pero el método de reemplazo de la cadena no hace nada, e intenté depurarlo pero no tuve suerte. newTask() crea otro div dentro de este div editable, por lo que puede variar el resultado.
Aquí está el código:
var bodyText = document.querySelector(".textarea"); bodyText.addEventListener("keypress", () => { var key = window.event.keyCode; if (key === 13) { var contenteditable = document.querySelector("[contenteditable]"); var text = contenteditable.textContent; var subString = text.substring( text.indexOf("!") + 1, text.lastIndexOf("!") ); //gets specific phrase // 'subString' phrase is also the thing i wanted it to be replaced const string = subString; if (subString !== "") { console.log(string); newTask(string); text.replace(subString, "[][]"); //<--this does not work } } }); function newTask(input) { var taskDiv = document.createElement("div"); taskDiv.className = "task"; taskDiv.addEventListener("click", () => { taskDiv.classList.toggle("completed"); }); var textboxDiv = document.createElement("div"); textboxDiv.className = "textbox"; textboxDiv.contentEditable = true; textboxDiv.innerHTML = input; taskDiv.appendChild(textboxDiv); bodyText.appendChild(taskDiv); }Pregúntame si necesitas más información. ¡Gracias por tu ayuda!
Intenta usar el siguiente código
const newText=text.replace(subString, "[][]"); contenteditable.textContent=newText;