TransWikia.com

¿Por que mi string que contiene HTML no se imprime en la pantalla?

Stack Overflow en español Asked by Joel Fernando on January 24, 2021

En mi código estoy intentando poner un string que contiene HTML dentro pero al parecer no lo agarra. Ni en un for ni en un textNode. ¿Alguien me puede decir cómo puedo corregirlo? El string se imprime tal cual sin modificar nada.

Aquí esta el HTML que quiero imprimir:

function createListElement() {
    var li = document.createElement("li");
    li.classList.add("list");
    li.appendChild(document.createTextNode(input.value + "<button>Eliminar</button>"));
    ul.appendChild(li);
    input.value = "";
    eventoSubrayar();
}

Aquí todo mi código de JS por cualquier cosa:

var button = document.getElementById("enter");
var input = document.getElementById("userinput");
var ul = document.querySelector("ul");
var liAll = document.querySelectorAll("li");

function inputLength (){
    return input.value.length;
}

function createListElement() {
    var li = document.createElement("li");
    li.classList.add("list");
    li.appendChild(document.createTextNode(input.value + "<button>Eliminar</button>"));
    ul.appendChild(li);
    input.value = "";
    eventoSubrayar();
}

function AddListAfterClick() {
    if (inputLength() > 0) {
        createListElement();
    }
}

function AddListAfterEnter(event) {
    if (inputLength() > 0 && event.keyCode === 13) {
        createListElement();
    }
}

function AddClassList() {
    for(let i = 0; i < liAll.length; i++) {
        liAll[i].className += "list"; 
    }
}

function EndTaskList() {
    this.classList.toggle("done")
}



button.addEventListener("click", AddListAfterClick);

input.addEventListener("keypress", AddListAfterEnter);

function eventoSubrayar() {
    for(var i = 0; i < document.querySelectorAll(".list").length; i++) {
        document.querySelectorAll(".list")[i].addEventListener("click", EndTaskList)
    };
}

function botonEliminar() {
    for (var i = 0; i < document.querySelectorAll(".list").length; i++) {
        var a = document.querySelectorAll(".list");
        a[i] = a[i] + "hi";
    }
}

AddClassList();
eventoSubrayar();

Gracias…

One Answer

Si lo que quieres es que se imprima un botón al momento que das click en enter tienes que crear también el elemento button de la siguiente manera:

function createListElement() {
    var li = document.createElement("li");
    var liButton = document.createElement("Button");
    liButton.appendChild(document.createTextNode("Eliminar"));
    li.classList.add("list");
    li.appendChild(document.createTextNode(input.value + " "));
    li.appendChild(liButton);
    ul.appendChild(li);
    input.value = "";
    eventoSubrayar();
}

Inténtalo y me cuentas si se soluciono tu problema.

Answered by Alexis Isidoro on January 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP