如何在JavaScript中动态创建,更改,移动,修改它的所有div?


82

我想在页面加载时创建新的div。这些div将显示为有序组,该组根据JSON文件中的外部数据而变化。我将需要使用for循环来完成此操作,因为需要100多个div。

因此,我需要能够更改每个创建的div的高度,宽度,顶部/左侧等等。但是,document.getElementById("created_div").style.whatever什么也没做,我什至看不到一个新的div出现。我已经将新的div高度/宽度设置为500px,背景设置为“红色”,依此类推,但是肯定没有新的div出现。

我究竟做错了什么?


2
分享您用于创建div的代码
wakooka 2012年

1
$(“#box0”)。append('<div id =“ created_div”> </ div>');
埃里克·纳尔逊

如果您要循环执行此操作,是否意味着您要尝试创建具有相同标识符的100个div?
埃文·特里波利

在浏览器控制台中查看...任何错误?即使不应该重复ID ...如果选择器存在并且没有引发错误,也不应停止插入它。错误是第一个关键检查
charlietfl 2012年

除了创建它们之外,您是否将它们插入DOM中?
加布里埃莱·彼得里奥里(December

Answers:


425

这涵盖了DOM操作的基础。请记住,要使新创建的节点在文档中可见,需要将元素添加到正文或包含正文的节点。


-1

您是否尝试过JQuery?香草javascript可能很难。尝试使用此:

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

.container-element是一个JQuery选择器,它使用“ container-element”类标记该元素(大概是您要在其中插入div的父元素)。然后,该add()函数将HTML插入容器元素。


好吧,我明白了。我必须将padding设置为大于0。即使其高度和宽度都设置为64。eh 儿童div有什么办法像普通div一样工作?目标是让每个div像一个链接一样起作用。试图为游戏网站创建动态列表; /
Erik Nelson

1
我不同意这一点,innerHTML(jquery所使用的内容)不是标准的,不遵循该标准的代价可能会导致行为不端。另外,对我而言,将计划html字符串添加到DOM树中而不是添加节点元素没有任何意义。
StormByte

2
考虑到整个DOM树最初都是普通的HTML,而innerHTML就是这样-元素中包含的HTML,两者中的一个都与说您不应该使用DOM相当,因为它污染了普通的旧HTML。
Rodney P. Barbati 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.