getElementsByClassName迭代中的JavaScript for循环不是函数错误

getElementsByClassName迭代中的JavaScript for循环不是函数错误,javascript,for-loop,dom,Javascript,For Loop,Dom,我有一个等高函数。我有3个容器。容器内是我喜欢设置为等高的瓷砖。我想为每个容器瓷砖设置不同的偏移高度;所以我迭代容器。我有以下设置: var setTileHeight=function(){ var containers=document.getElementsByClassName('a-r'); 用于(容器中的var i){ var tiles=containers[i].getElementsByClassName('span-3'); 控制台日志(瓷砖); } }; window.o

我有一个等高函数。我有3个容器。容器内是我喜欢设置为等高的瓷砖。我想为每个容器瓷砖设置不同的偏移高度;所以我迭代容器。我有以下设置:

var setTileHeight=function(){
var containers=document.getElementsByClassName('a-r');
用于(容器中的var i){
var tiles=containers[i].getElementsByClassName('span-3');
控制台日志(瓷砖);
}
};
window.onload=函数(){
setTileHeight();
};
.span-3{
浮动:左;
宽度:25%;
填充:10px;
}
.span-12{
浮动:左;
宽度:100%;
}
.形象{
宽度:50px;
浮动:左;
}
.文本{
宽度:计算(100%-50px);
浮动:左;
}

如前所述,错误是由于不正确的循环结构造成的
for..in
循环对象的属性,而不是数组的元素

样本

var setTileHeight=function(){
var containers=document.getElementsByClassName('a-r');
用于(容器中的var i){
试一试{
var tiles=containers[i].getElementsByClassName('span-3');
控制台日志(瓷砖);
}捕获(e){
log(“由于i:,i的值不正确而导致的错误”)
}
}
};
window.onload=函数(){
setTileHeight();
};
.span-3{
浮动:左;
宽度:25%;
填充:10px;
}
.span-12{
浮动:左;
宽度:100%;
}
.形象{
宽度:50px;
浮动:左;
}
.文本{
宽度:计算(100%-50px);
浮动:左;
}

for (let i = 0; i < containers.length; i++) {
  var tiles = containers[i].getElementsByClassName('span-3');
}
<script>    
   var setTileHeight = function () {

   var containers = document.getElementsByClassName('a-r');
            for (var i in containers) {
                var allchildren = containers[i].children;
                for (var j in allchildren) {
                    var cls = allchildren[j].className;
                    if (cls === 'span-3') {
                    var item = document.getElementsByClassName(cls);                    
                    if (item && item.length > 0)
                        item[0].setAttribute("style", "height:100px");
                    }                 
                }    
            }
   };

   window.onload = function () {
            setTileHeight();
   };
</script>