Comencé a crear una cartera dinámica, donde una matriz completará automáticamente una lista ordenada con elementos de la lista. Los elementos de la lista tendrán la etiqueta como nombre y la URL como enlace.
Esto ha funcionado en su mayoría, excepto que el problema es que no puedo cambiar el atributo 'href' en la etiqueta. En lugar de ser semana1/index.html, termina siendo [texto del objeto]. Puedes ver esto en la imagen HTML. Cuando miro la URL en mi navegador al ver la página HTML, dice [object%20Text] al final de la URL en lugar de semana1/index.html al final.
He intentado usar setAttribute, como se muestra en el código. También he intentado usar newA.href = newURL. Lo que estoy haciendo parece coincidir con las soluciones que he encontrado en Internet, pero no funciona. Si no recuerdo mal, también intenté manipular el atributo onclick para cambiar el enlace cuando se hace clic en él, pero tampoco funcionó. Si hay un problema de sintaxis, no lo sé.
Tenía curiosidad por saber si mi variable newUrl tenía la información correcta, y la tiene. Si hago newA.appendChild(newUrl) en lugar de newA.appendChild(newLabel), lo mostrará correctamente como la etiqueta del elemento de la lista. Si hago newA.setAttribute("href", newLabel) en lugar de usar newUrl, entonces mostrará el mismo [texto del objeto] dentro del atributo href.
Gracias por tomarse el tiempo para mirar esto y pensar cuál es el problema.
Pega siempre tu código aquí para que podamos ayudarte más fácilmente.
estás llamando a const newUrl = document.createTextNode(links[i].url); que crea un objeto de texto
entonces tienes newA.setAttribute("href", newUrl); que establece el atributo href para ese OBJETO DE TEXTO como se muestra en su html representado.
corrija la línea de declaración/inicialización a una cadena const newUrl = links[i].url;