亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

出現Cannot read property 'style' of undefined錯誤

window.onload=function(){
????waterfall('main','box');
}

function?waterfall(parent,box){
????//獲取class為box的元素
????var?oParent?=?document.getElementById(parent);
????var?oBox=?getByClass(oParent,box);
????//console.log(oBox.length);
????//?計算頁面顯示的列數(頁面寬度/box寬)
????var?oBoxw?=?oBox[0].offsetWidth;
????var?cols?=Math.floor(document.documentElement.clientWidth/oBoxw);
????//設置main的寬度
????oParent.style.cssText='width:'+oBoxw*cols+'px;margin:0?auto';
????var?hArr=[];
????for(var?i=0;i<oBox.length;i++){
????????if(i<cols){
????????hArr.push(oBox[i].offsetHeight);
????????}
????}
????//console.log(hArr);
????var?minH=Math.min.apply(null,hArr);
????//console.log(minH);
????var?index?=?getMinH(hArr,minH);
????oBox[i].style.position='absolute';
????oBox[i].style.top=minH+'px';
????oBox[i].style.left=oBoxw*index+'px';
????hArr[index]+=oBox[i].offsetHeight;
}

//根據class獲取元素
function?getByClass(parent,clsName){
????var?boxArr?=?[];
????oElements?=?parent.getElementsByTagName('*');
????for(var?i=0;i<oElements.length;i++){
????????if(oElements[i].className==clsName){
????????????boxArr.push(oElements[i]);
????????}
????}
????return?boxArr;
}
function?getMinH(arr,val){
????for(var?i?in?arr){
????????if?(arr[i]==val){
????????????return?i;
????????}
????}
}

25行出現錯誤,是哪里出的問題?


正在回答

1 回答

oBox[i]的i都沒了,for(var?i=0;i<oBox.length;i++){

????????if(i<cols){

????????hArr.push(oBox[i].offsetHeight);

????????}

????}

變量是在for循環內定義的,你的i都跑變量外面來了,怎么會有,還有if?if(i<cols),下面的代碼不應該是else里面嗎

0 回復 有任何疑惑可以回復我~
#1

zk785 提問者

非常感謝!
2016-05-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

出現Cannot read property 'style' of undefined錯誤

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號