JavaScript'te dinamik olarak nasıl yeni div oluşturulur, değiştirilir, taşınır, mümkün olan her şekilde değiştirilir?


82

Sayfa yüklenirken yeni div'ler oluşturmak istiyorum. Bu div'ler, JSON dosyasındaki harici verilere bağlı olarak değişen sıralı bir grup olarak görünecektir. Bunu bir for döngüsü ile yapmam gerekecek çünkü 100'den fazla div gerekli.

Bu nedenle, oluşturulan her bir div'i yükseklik, genişlik, üst / sol vb. Açısından değiştirebilmem gerekiyor. Yine document.getElementById("created_div").style.whateverde hiçbir şey yapmıyor, tek bir yeni div bile göremiyorum. Yeni divs yüksekliğini / genişliğini 500px, arkaplanı "kırmızı" olarak ayarladım, ancak yeni div'ler kesinlikle görünmüyor.

Neyi yanlış yapıyorum?


2
Div

1
$ ("# box0"). append ('<div id = "created_div"> </div>');
Erik Nelson

Bunu bir döngü içinde yapıyorsanız, bu aynı tanımlayıcıyla 100 div oluşturmaya çalıştığınız anlamına mı geliyor?
Evan Trimboli

tarayıcı konsoluna bakın ... herhangi bir hata? Kimlik tekrarlanmamalı olsa bile ... seçici varsa ve hata atılmadıysa eklenmesini durdurmamalıdır.Hatalar ilk kritik kontroldür
charlietfl

onları oluşturmanın yanı sıra, bunları DOM'a ekler misiniz?
Gabriele Petrioli

Yanıtlar:


428

Bu, DOM işlemenin temellerini kapsar. Yeni oluşturulan düğümün belgede görünür olması için gövdeye veya gövdede bulunan düğüme öğe eklenmesi gerektiğini unutmayın.


-1

JQuery'yi denediniz mi? Vanilya javascript zor olabilir. Bunu kullanmayı deneyin:

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

.container-elementöğeyi "kapsayıcı öğesi" sınıfıyla (muhtemelen div'lerinizi eklemek istediğiniz ana öğe) işaretleyen bir JQuery seçicidir. Daha sonra add()işlev HTML'yi konteyner elemanına ekler.


Ben aldım. Dolguyu 0'dan büyük olarak ayarlamak zorunda kaldım. Yüksekliği ve genişliği her biri 64 olarak ayarlanmış olsa da. Bleh. Bir çocuk div'in normal bir div gibi davranmasının bir yolu var mı? Amaç, her div'in bir bağlantı gibi davranmasını sağlamaktır. Bir oyun web sitesi için dinamik bir liste oluşturmaya çalışmak; /
Erik Nelson

1
Buna katılmıyorum, innerHTML (bunun için jquery'nin kullandığı) standart DEĞİLDİR ve standarda uymamanın bedeli hatalı davranışlara yol açabilir. Ayrıca, benim için, düğüm öğeleri eklemek yerine bir plan html dizesini bir DOM ağacına eklemek mantıklı değil.
StormByte

2
DOM ağacının tamamının hayata düz eski HTML olarak başladığını ve bu innerHTML'nin tam da bu olduğunu düşünürsek - bir öğenin içinde bulunduğu HTML, herhangi biriyle ilgili bir sorun olması, DOM'u kirlettiği için kullanmamanız gerektiğini söylemekle eşdeğer düz eski HTML.
Rodney P. Barbati
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.