我正在尝试确定元素的顶部偏移量,并且控制台会记录错误,即使JQuery的文档说它应该像这样编写:
$('.myObject').offset().top
错误:
未捕获的TypeError:无法读取未定义的属性“top”
为什么会这样? 该问题的解决方案是什么?
答案 0 :(得分:4)
这通常是因为$('.myObject')
没有返回任何内容。为了防止代码崩溃,请在调用.offset().top
var myObj = $('.myObject');
if (myObj.length){
myObj.offset().top
}
由于.top
是属性而不是方法,因此jQuery不会处理它,因此如果脚本不存在会导致脚本崩溃
答案 1 :(得分:1)
您必须检查元素是否存在。
e.g。
var myObjExists = $('.myObject').length > 0 ? true : false;
如果你然后console.log(myObjExists);
,它应该返回true或false。
从这里你可以做一些错误处理,为什么它不存在。
如果您需要更多详细信息,请同时发布此代码指向的HTML。