2014-11-04 208 views
1

我不斷收到此錯誤:'Uncaught TypeError:無法讀取'undefined'的屬性'top'。有誰知道我做錯了什麼?我有2個具有不同值的相同循環,但他們不會執行,第一個循環執行,但其餘不執行。我是jQuery的新手,所以如果有人能告訴我我做錯了什麼,那會很棒。TypeError:無法讀取undefined屬性'top'

for(i=4, x=1; x<16; i=i+3, x=x+3) 
{ 
    var top  = $('.box-' + x).position().top + $('.box-' + x).height() + 10; 
    var left = $('.box-' + x).position().left; 

    $('.box-' + i).css({ 
     top: top, 
     left: left 
    }); 
} 

我不斷收到此錯誤:'未捕獲的類型錯誤:無法讀取未定義的屬性'頂部'。

+3

這意味着並非所有'$('。box-'+ x)'元素都存在於頁面上。 – dfsq 2014-11-04 15:59:57

+1

似乎沒有類'box-1'(或'box-4','box-7','box-10'或'box-13')的元素。 – ZiNNED 2014-11-04 16:00:23

回答

0

正如@dfsq指出的那樣,某些目標元素可能在頁面上不可用。所以下面的代碼將只對那些是:

for(i=4, x=1; x<16; i=i+3, x=x+3) 
{ 
    if($('.box-' + x).length) { 
     var top  = $('.box-' + x).position().top + $('.box-' + x).height() + 10; 
     var left = $('.box-' + x).position().left; 

     $('.box-' + i).css({ 
      top: top, 
      left: left 
     }); 
    } 
} 
相關問題