我试图确定一个元素的顶部偏移量并且控制台记录一个错误,即使 JQuery 的文档说它应该这样写:
$('.myObject').offset().top
错误:
未捕获的类型错误:无法读取未定义的属性“顶部”
为什么会这样?有什么解决问题的办法吗?
我试图确定一个元素的顶部偏移量并且控制台记录一个错误,即使 JQuery 的文档说它应该这样写:
$('.myObject').offset().top
错误:
未捕获的类型错误:无法读取未定义的属性“顶部”
为什么会这样?有什么解决问题的办法吗?
这通常会发生,因为$('.myObject')
什么都不返回。为了保护您的代码不崩溃,请在调用之前检查元素是否存在.offset().top
var myObj = $('.myObject');
if (myObj.length){
myObj.offset().top
}
因为.top
它是一个属性而不是一个方法,它不是由 jQuery 处理的,因此,如果它不存在,它将使你的脚本崩溃。
您必须检查该元素是否存在。
例如
var myObjExists = $('.myObject').length > 0 ? true : false;
如果你 then console.log(myObjExists);
,它应该返回 true 或 false。
从这里您可以对它不存在的原因进行一些错误处理。
如果您需要更多详细信息,请同时发布此代码指向的 HTML。