2012-12-30 14 views
64

Sono stato alle prese con questo per ore e sto diventando pazzo. Voglio creare nuovi div al caricamento della pagina. Questi div appariranno come un gruppo ordinato che cambia a seconda dei dati esterni da un file JSON. Dovrò farlo con un ciclo for perché ci sono oltre 100 div necessari.Javascript: come creare un nuovo div in modo dinamico, modificarlo, spostarlo, modificarlo in ogni modo possibile?

Quindi, ho bisogno di essere in grado di cambiare ogni div creato in termini di altezza, larghezza, alto/sinistra e così via. Eppure, document.getElementById("created_div").style.whatever non fa nulla, non riesco nemmeno a vedere apparire un nuovo div. Ho impostato la nuova altezza div/width su 500px, lo sfondo su "red" e così via, ma non ci sono sicuramente nuove div. Che cosa sto facendo di sbagliato? Perche'e'cosi difficile? Sheesh. Aiuto!

+2

Condividi il codice che utilizzi per creare div – wakooka

+1

$ ("# box0"). Append ('

'); –

+0

Se stai facendo questo in un ciclo, vuol dire che stai tentando di creare 100 div con lo stesso identificatore? –

risposta

343

Questo copre le basi della manipolazione del DOM. Ricordare che è necessario aggiungere un elemento al corpo o un nodo contenuto nel corpo per rendere visibile il nodo appena creato all'interno del documento.

0

Hai provato JQuery? Vanilla JavaScript può essere difficile. Provare a utilizzare questo:

$('.container-element').add('<div>Insert Div Content</div>'); 

.container-element è un selettore JQuery che segna l'elemento con la classe "contenitore-elemento" (presumibilmente l'elemento principale in cui si desidera inserire i div). Quindi la funzione add() inserisce HTML nell'elemento contenitore.

+0

Bene, ho capito. Ho dovuto impostare il padding su maggiore di 0. Anche se altezza e larghezza sono impostate su 64 ciascuna. Bleh. C'è un modo per un div bambino di comportarsi come un normale div? L'obiettivo è far sì che ogni div agisca come un link. Cercando di creare un elenco dinamico per un sito Web di gioco:/ –

+1

Non sono d'accordo con questo, innerHTML (ciò che jquery usa per quello) è * NON * standard, e il prezzo di non seguire lo standard può portare a un comportamento scorretto. Inoltre, per me, non ha senso aggiungere una stringa html di un piano in un albero DOM piuttosto che aggiungere elementi nodo. – StormByte

+0

Considerando che l'intero albero DOM inizia la vita come semplice vecchio HTML, e che innerHTML è proprio questo - l'HTML che ha un elemento in esso, avendo un problema con entrambi è alla pari con dicendo che non dovresti usare il DOM perché inquinato il semplice vecchio HTML. –

Problemi correlati