Quiero crear nuevos divs a medida que se carga la página. Estos divs aparecerán como un grupo ordenado que cambia según los datos externos de un archivo JSON. Necesitaré hacer esto con un ciclo for porque se necesitan más de 100 divs.
Por lo tanto, necesito poder cambiar cada div creado con respecto a la altura, el ancho, la parte superior / izquierda, etc. Sin embargo, document.getElementById("created_div").style.whatever
no hace nada, ni siquiera puedo ver aparecer un solo div nuevo. Establecí la nueva altura / ancho de divs en 500px, el fondo en "rojo", y así sucesivamente, pero definitivamente no aparecen nuevos divs.
¿Qué estoy haciendo mal?
javascript
dom
Erik Nelson
fuente
fuente
Respuestas:
var div = document.createElement('div');
document.body.appendChild(div);
div.style.left = '32px';
div.style.top = '-16px';
div.className = 'ui-modal';
div.id = 'test';
div.innerHTML = '<span class="msg">Hello world.</span>';
div.textContent = 'Hello world.';
div.parentNode.removeChild(div);
div = document.getElementById('test');
array = document.getElementsByTagName('div');
array = document.getElementsByClassName('ui-modal');
div = document.querySelector('div #test .ui-modal');
array = document.querySelectorAll('div');
node = div.childNodes[i];
node = div.nextSibling;
element = div.children[i];
element = div.nextElementSibling;
Esto cubre los conceptos básicos de la manipulación DOM. Recuerde, se requiere la adición de elementos al cuerpo o un nodo contenido en el cuerpo para que el nodo recién creado sea visible dentro del documento.
fuente
¿Has probado JQuery ? JavaScript de vainilla puede ser difícil. Intente usar esto:
$('.container-element').add('<div>Insert Div Content</div>');
.container-element
es un selector de JQuery que marca el elemento con la clase "contenedor-elemento" (presumiblemente el elemento padre en el que desea insertar sus divs). Luego, laadd()
función inserta HTML en el elemento contenedor.fuente