2014-11-04 6 views
1

Я продолжаю получать эту ошибку: 'Uncaught TypeError: Невозможно прочитать свойство' top 'undefined'. Кто-нибудь знает, что я делаю неправильно? У меня есть две одинаковые петли с разными значениями, но они не исполняются, первый цикл выполняется, а остальное - нет. Я новичок в jQuery, поэтому, если кто-то может сказать мне, что я делаю неправильно, это было бы здорово.TypeError: Невозможно прочитать свойство 'top' of undefined

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 
    }); 
} 

я получаю эту ошибку: «Uncaught TypeError: Не удается прочитать свойство„сверху“неопределенных».

+3

Это означает, что на странице не все элементы '$ ('. Box-' + x)'. – dfsq

+1

Похоже, что нет элементов с классом 'box-1' (или' box-4', 'box-7',' box-10' или 'box-13'). – ZiNNED

ответ

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 
     }); 
    } 
} 
Смежные вопросы