var waterfall = {
testdata:[],
ulArr:document.querySelector('ul'),
randomdata:function (userlength,maxNumber) {
var data = parseInt(Math.random()*maxNumber);
if(waterfall.testdata.length < userlength){
waterfall.testdata.push(data);
waterfall.randomdata(userlength,maxNumber)
}else {
return false;
}
},
createImg:function (count) {
for(var i = 0; i < count.length; i++){
var img = document.createElement('img');
img.src = 'girl/' + count[i] + '.jpg';
var li = document.createElement('li');
li.appendChild(img);
//假设一个最短的ul
var minHeightUl = waterfall.ulArr[0];
//循环找到每次最短的然后添加图片
for (var j = 0; j < waterfall.ulArr.length; i++) {
if(minHeightUl.offsetHeight > waterfall.ulArr[j].offsetHeight) {
minHeightUl = waterfall.ulArr[j];
}
}
minHeightUl.appendChild(li);
}
}
};
window.onload = function () {
waterfall.randomdata(50,16);
document.write(waterfall.testdata);
waterfall.createImg(waterfall.testdata);
}
如上所示,写了一个瀑布流的函数,但在执行的时候,chrome显示:
怎么修复这个问题呢?
你的代码里有两处问题:
ulArr:document.querySelector('ul')
,按照你的代码,你应该是为了选择所有的ul,所以应该用querySelectorAllvar j = 0; j < waterfall.ulArr.length; i++
, i++是什么鬼?改了这两处应该就好了