使用offset()记录错误.top,为什么?

时间:2013-10-25 07:07:58

标签: javascript jquery

我正在尝试确定元素的顶部偏移量,并且控制台会记录错误,即使JQuery的文档说它应该像这样编写:

$('.myObject').offset().top

错误:

  

未捕获的TypeError:无法读取未定义的属性“top”

为什么会这样? 该问题的解决方案是什么?

2 个答案:

答案 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。