TypeError:无法读取属性'top'的未定义

TypeError: Cannot read property 'top' of undefined

本文关键字:未定义 top 属性 读取 TypeError      更新时间:2023-09-26

我一直收到这样的错误:"未捕获类型错误:无法读取未定义的属性'top'"。有人知道我做错了什么吗?我有两个具有不同值的相同循环,但它们不会执行,第一个循环确实执行,但其余的不执行。我是jQuery的新手,所以如果有人能告诉我我做错了什么,那就太好了。

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

我一直收到这样的错误:"未捕获的类型错误:无法读取未定义的属性"top"。"。

正如@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
        });
    }
}