0

如果有一个名为(id)“ABC123”的对象,我想自动向下滚动到该对象。如果此对象存在,则效果很好。但如果不是,我会收到一个错误: “TypeError: $(...).offset(...) is undefined”

我的代码应该避免这个错误,但不起作用:

if(typeof($('#ABC123')) != 'undefined') {
        $('html, body').animate({ scrollTop: ($("#ABC123").offset().top-100) }, 0).scroll();
    }
4

2 回答 2

4

jQuery 集合永远不会undefined.

只需测试它不是空的:

if ($('#ABC123').length) {
于 2013-04-07T16:27:06.233 回答
0

一个 jQuery 对象永远不会是nullor undefined,即使你没有传递任何参数$(),在这种情况下它只是空的并且什么也不做。

似乎您想检查它是否为空:

if ($('#ABC123').length) {
    $('html, body').animate({ scrollTop: ($("#ABC123").offset().top-100) }, 0).scroll();
});
于 2013-04-07T16:32:34.417 回答