Як динамічно створювати новий div, змінювати його, переміщувати, модифікувати всіляко в JavaScript?


82

Я хочу створювати нові div під час завантаження сторінки. Ці divs відображатимуться як упорядкована група, яка змінюється залежно від зовнішніх даних із файлу JSON. Мені потрібно буде зробити це за допомогою циклу for, оскільки потрібно понад 100 div.

Отже, мені потрібно мати можливість змінювати кожен створений div щодо висоти, ширини, верхнього / лівого і так далі. Тим document.getElementById("created_div").style.whateverне менше, нічого не робить, я навіть не бачу, щоб з'явився жоден новий div. Я встановив для висоти / ширини нових div значення 500px, фон - "червоний" тощо, але жодних нових divів точно не з'являється.

Що я роблю не так?


2
Поділіться кодом, який ви використовуєте для створення div
wakooka

1
$ ("# box0"). append ('<div id = "created_div"> </div>');
Ерік Нельсон,

Якщо ви робите це в циклі, чи означає це, що ви намагаєтеся створити 100 div з однаковим ідентифікатором?
Еван Трімболі,

заглянути в консоль браузера ... якісь помилки? Незважаючи на те, що ідентифікатор не слід повторювати ... не слід зупиняти його вставку, якщо селектор існує і помилки не видані. Помилки - це перша критична перевірка
charlietfl

окрім їх створення, ви вставляєте їх у DOM?
Габріеле Петріолі

Відповіді:


428

Це охоплює основи маніпуляцій DOM. Пам’ятайте, що додавання елемента до тіла або вузла, що міститься в тілі, потрібно, щоб новостворений вузол був видимим у документі.


-1

Ви пробували JQuery ? Ванільний javascript може бути жорстким. Спробуйте скористатися цим:

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

.container-elementє селектором JQuery, який позначає елемент класом "container-element" (імовірно батьківським елементом, в який ви хочете вставити свої div). Потім add()функція вставляє HTML в елемент-контейнер.


Ну, я зрозумів. Мені довелося встановити відступ більше ніж 0. Навіть незважаючи на те, що його висота та ширина встановлені на 64 кожен. Блех. Чи існує спосіб, щоб дочірній div поводився як звичайний div? Мета полягає в тому, щоб кожен div діяв як посилання. Спроба створити динамічний список для ігрового веб-сайту; /
Ерік Нельсон

1
Я не погоджуюся з цим, innerHTML (те, що для цього використовує jquery) НЕ є стандартним, і ціна недотримання стандарту може призвести до неправильної поведінки. Крім того, для мене немає сенсу додавати рядок HTML-плану в дерево DOM, а не додавати елементи вузла.
StormByte

2
Беручи до уваги, що все дерево DOM починає життя як звичайний старий HTML, і що innerHTML - це саме те - HTML, що в ньому є елемент, маючи проблему з будь-яким з них, є рівним тому, що ви не повинні використовувати DOM, оскільки він забруднений звичайний старий HTML.
Родні П. Барбаті,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.