Necesito pasar una línea html con una identificación que proviene de javascript, usé innerHTML pero no puedo hacer que funcione, si uso una cadena simple, funciona
function passid(id){ var lengthOfName = id document.getElementById('output').innerTEXT = "<input type="text" id="test" name="test" value="'lengthOfName'">"; }; <div id="output"></div>deberías usar backticks e innerHTML.
function passid(id){ var lengthOfName = id document.getElementById('output').innerHTML = ` <input type="text" id="test" name="test" value=${lengthOfName}>`; };Lo que tienes que hacer son algunas pequeñas correcciones.
function passid(id){ var lengthOfName = id document.getElementById('output').innerHTML = `<input type="text" id="test" name="test" value="${lengthOfName}">`; };En su código de ejemplo, está utilizando innerTEXT con una cadena de HTML. Esto no analizará el HTML en su cadena y el elemento de entrada al DOM.
Dependiendo de cómo esté 'pasando su identificación usando javascript', es posible que deba diferir el código como se sugiere en uno de los comentarios. Pero puede usar insertAdjacentHTML con 'afterbegin' como la ubicación de la cadena HTML. También usaría literales de plantilla y encerraría su signo de dólar variable y corchetes como => ${id} .
Vea mi ejemplo, si esto no es lo que está buscando, hágamelo saber y abordaré adecuadamente mi respuesta.
let id = "myid"; function passid(id){ let el = document.getElementById('output'); let str = `<input type="text" id="test" name="test" value="${id}">`; el.insertAdjacentHTML('afterbegin', str); }; passid(id); <div id="output"></div>