2014-02-11 100 views
1

我用JavaScript创建一些div动态:getElementByClassName用于动态创建的元素

<div class="tile"></div> 
<div class="tile"></div> 
<div class="tile"></div> 
<div class="tile"></div> 

现在我想选择这些div并改变它们的尺寸,像这样:

var singleTiles = document.getElementsByClassName('tile'); 
singleTiles.style.width = '10px'; 
singleTiles.style.height = '10px'; 

但是这并未” t似乎工作。我假设因为元素是动态添加的。有没有另一种方法来做到这一点?

+1

singleTiles是一个数组,所以你必须itterate在它 – Rooster

+1

我相信它实际上是一个'HTMLCollection'是'live',并不在于它会在这个例子重要,但可以在其他情况下, 。 – Xotic750

回答

3

document.getElementsByClassName,它返回一个包含任何给定类名的所有子元素的数组。这里的元素是一个HTMLCollection找到的元素。所以你必须循环它。

使用

var singleTiles = document.getElementsByClassName('tile'); 
for(var i=0; i<singleTiles.length; i++) { 
    singleTiles[i].style.width = '10px'; 
    singleTiles[i].style.height = '10px'; 
} 
+0

为什么我不能打电话。连接()在结果数组? – dandavis

+0

@dandavis,我还没有尝试过,并根据我的理解在这里,我们指的是DOM元素所以我不认为这将工作 – Satpal

+0

然后请编辑关于“它返回一个数组”的部分,以免混淆noobs。 – dandavis