检查是否在jquery中定义了对象以避免错误

时间:2013-04-07 16:26:34

标签: jquery

如果有一个名为(id)“ABC123”的对象,我想自动向下滚动到该对象。如果这个对象存在,那很好。但如果没有,我收到一个错误: “TypeError:$(...)。offset(...)未定义”

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

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

2 个答案:

答案 0 :(得分:4)

jQuery集合永远不会是undefined

只需测试它不是空的:

if ($('#ABC123').length) {

答案 1 :(得分:0)

jQuery对象永远不会是nullundefined,即使你没有传递任何参数$(),在这种情况下它只是空的而根本就什么都不做。

好像你想检查它是否为空:

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