为了账号安全,请及时绑定邮箱和手机立即绑定

代码有错误


<script>

window.onload=function(){

waterfull('main','box');

}

function waterfull(parent,box){

//把父元素中class为box额元素取出来

var oparent=document.getElementById(parent);

var col=getbyclass(oparent,box);

//计算一共多少列(页面宽度/每一个盒子的宽度)

var boxw=col[0].offsetWidth;

var bol=Math.floor(document.documentElement.clientWidth/boxw);

oparent.style.cssText='width'+boxw*bol+'px;margin:0 auto';

var harr=new Array();//存放高的数组

for(var i=0;i<col.length;i++){

if(i<bol){

  harr.push(col[i].offsetHeight);

}

else{

   var minh=Math.min.apply(null,harr);

var index=getminhindex(harr,minh);

col[i].style.position='absolute';

col[i].style.top=minh+'px';

col[i].style.left=boxw*index+'px';

harr[index]+=col[i].offsetHeight;

}

}

}

function getbyclass(parent,clsName){

var boxs=new Array();//用来存放classname为box的盒子

var oElements=parent.getElementsByTagName('*');

for(var i=0;i<=oElements.length;i++){

if(oElements[i].className==clsName){

boxs.push(oElements[i]);

}

}

return boxs;

}

function getminhindex(arr,val){

for(var i in arr){

if(arr[i]==val){

return i;

}

}

}

</script>

有错误,而且一直显示className使用有误

正在回答

2 回答

你的错误就在于getbyclass这个函数中的for循环

把for(var i=0;i<=oElements.length;i++)改为 for(var i=0; i<oElements.length; i++)



0 回复 有任何疑惑可以回复我~

可能是脚本执行顺序的原因,试着把脚本放在body下面。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码有错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信