如果有一个名为(id)“ABC123”的对象,我想自动向下滚动到该对象。如果这个对象存在,那很好。但如果没有,我收到一个错误: “TypeError:$(...)。offset(...)未定义”
我的代码应避免此错误,但不起作用:
if(typeof($('#ABC123')) != 'undefined') {
$('html, body').animate({ scrollTop: ($("#ABC123").offset().top-100) }, 0).scroll();
}
答案 0 :(得分:4)
jQuery集合永远不会是undefined
。
只需测试它不是空的:
if ($('#ABC123').length) {
答案 1 :(得分:0)
jQuery对象永远不会是null
或undefined
,即使你没有传递任何参数$()
,在这种情况下它只是空的而根本就什么都不做。
好像你想检查它是否为空:
if ($('#ABC123').length) {
$('html, body').animate({ scrollTop: ($("#ABC123").offset().top-100) }, 0).scroll();
});