Estoy modificando un script escrito en PHP que carece de un template engine, el tema básicamente está embebido dentro de la escritura del código PHP, lo que dificulta muchísimo su edición...
Me veo atorado con algo que quiero hacer, y es que tocaría modificar demasiados archivos si quisiera lograrlo, lo cual sin duda me traería varios problemas... Entonces pensé en algo...
¿Es posible obtener el elemento HTML con su ID y mostrarlo las X veces que se repita?, necesito renderizar lo que sería un pequeño 'newsfeed' que viene con el script, que muestra un listado básico de noticias...
Sé que iría algo como:
Código
myElement = document.getElementById("id_a_mostrar"); document.getElementById("ejemplo").innerHTML = myElement.innerHTML; document.getElementById("ejemplo").style.display = "inline-block";
Y con javascript darle el estilo que necesito que tenga... Bueno, en fin... La cuestión es que por defecto eso solo me va a mostrar un resultado, el primero... El código javascript no va a repetirse por cada uno de los IDs... ¿oh sí?
Porque ya probé pero en efecto solo me muestra un resultado, el primero... ¿Será que hice algo mal?, ¿estoy en lo erróneo con lo que quiero hacer? De ser así, ¿cuál sería la alternativa? (a no tener que modificar tantos archivos del script para hacer lo que necesito)
Edit: veo que una opción podría ser getElementsByClassName, pero no me funciona al intentar ponerlos dentro de la ID no me muestra nada
Código
Jajaja perdón la ignorancia
myElement = document.getElementsByClassName("uniqueid"); document.getElementByID("ejemplo").innerHTML = myElement.innerHTML;
Me acabo de enterar que getElementsByClassName no tiene innerHTML por ser NodeList ;P entonces usé cloneNode
Qué novatada pero, ¿cómo rayos hago para almacenar el resultado de cloneNode en una variable? rayos
Código
var myElement = document.getElementById("idcualquiera"); myElement.innerHTML = ""; Array.prototype.forEach.call(document.getElementsByClassName("clasecualquiera"), function(e) { element.appendChild(e.cloneNode(true)); });
La necesito para poder asignarle una clase a cada resultado (elementclass.className += " nueva_clase";)
Edit 3: Oh, creo que pude
Código
var myElement = document.getElementById("idcualquiera"); myElement.innerHTML = ""; Array.prototype.forEach.call(document.getElementsByClassName("clasecualquiera"), function(e) { var elementclass = element.appendChild(e.cloneNode(true)); elementclass.className += " nueva_clase"; });
Jejeje ¿cómo podría poner HTML para cada elemento?, no solo una clase css, sino html? ;P he probado con InnerHTML pero no sé cómo escribirlo porque no me funciona
Mod: No hacer triple post.