Ich möchte neue Divs erstellen, während die Seite geladen wird. Diese Divs werden als geordnete Gruppe angezeigt, die sich abhängig von externen Daten aus einer JSON-Datei ändert. Ich muss dies mit einer for-Schleife tun, da über 100 Divs benötigt werden.
Ich muss also in der Lage sein, jedes erstellte Div in Bezug auf Höhe, Breite, oben / links usw. zu ändern. Aber document.getElementById("created_div").style.whatever
tut nichts, ich kann nicht einmal einen einzigen neuen Div sehen. Ich habe die Höhe / Breite der neuen Divs auf 500px, den Hintergrund auf "rot" usw. eingestellt, aber es werden definitiv keine neuen Divs angezeigt.
Was mache ich falsch?
javascript
dom
Erik Nelson
quelle
quelle
Antworten:
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;
Dies behandelt die Grundlagen der DOM-Manipulation. Denken Sie daran, dass das Hinzufügen eines Elements zum Body oder zu einem Body-enthaltenen Knoten erforderlich ist, damit der neu erstellte Knoten im Dokument sichtbar ist.
quelle
Haben Sie JQuery ausprobiert ? Vanille-Javascript kann hart sein. Versuchen Sie Folgendes:
.container-element
ist ein JQuery-Selektor, der das Element mit der Klasse "container-element" markiert (vermutlich das übergeordnete Element, in das Sie Ihre divs einfügen möchten). Dannadd()
fügt die Funktion HTML in das Containerelement ein.quelle