Javascript 使用offset()记录错误。top,为什么?
我试图确定元素的顶部偏移量,控制台记录了一个错误,尽管JQuery的文档说应该这样写:Javascript 使用offset()记录错误。top,为什么?,javascript,jquery,Javascript,Jquery,我试图确定元素的顶部偏移量,控制台记录了一个错误,尽管JQuery的文档说应该这样写: $('.myObject').offset().top 错误: 未捕获的TypeError:无法读取未定义的属性“top” 为什么会发生这种情况? 问题的任何解决方案?这通常是因为$('.myObject')不返回任何内容。要防止代码崩溃,请在调用.offset().top var myObj = $('.myObject'); if (myObj.length){ myObj.offset().to
$('.myObject').offset().top
错误:
未捕获的TypeError:无法读取未定义的属性“top”
为什么会发生这种情况?
问题的任何解决方案?这通常是因为
$('.myObject')
不返回任何内容。要防止代码崩溃,请在调用.offset().top
var myObj = $('.myObject');
if (myObj.length){
myObj.offset().top
}
由于
.top
是一个属性而不是一个方法,因此jQuery不会处理它,因此,如果脚本不存在,它将使脚本崩溃。这通常是因为$('.myObject')
不返回任何内容。要防止代码崩溃,请在调用.offset().top
var myObj = $('.myObject');
if (myObj.length){
myObj.offset().top
}
由于
.top
是一个属性而不是一个方法,因此jQuery不会处理它,因此,如果脚本不存在,它将使脚本崩溃。您必须检查元素是否存在
e、 g
如果然后console.log(myObjExists)代码>,它应该返回true或false
从这里你可以做一些错误处理来解释为什么它不存在
如果您需要更多详细信息,请同时发布此代码指向的HTML。您必须检查元素是否存在
e、 g
如果然后console.log(myObjExists)代码>,它应该返回true或false
从这里你可以做一些错误处理来解释为什么它不存在
如果您需要更多详细信息,请同时发布此代码指向的HTML。美元(“.myObject”).length返回什么?您确定它不是$(“#myObject”)
?使用类选择器可能会返回一个集合而不是一个元素。如果对集合调用,.offset()将返回第一个元素的偏移量,因此它无论如何都不会崩溃。$('.myObject').length返回什么?是否确定它不是$('#myObject')
?使用类选择器可能会返回一个集合而不是一个元素。如果对集合调用,.offset()将返回第一个元素的偏移量,因此它无论如何都不会崩溃。轻微优化:dovar myObject=$('.myObject')编码>然后使用myObject
。这就避免了jQuery必须遍历DOM两次,这相对来说是非常昂贵的。谢谢。我认为您的更新与Zzzalani存在竞争条件,您丢失了更改。轻微优化:dovar myObject=$('.myObject')编码>然后使用myObject
。这就避免了jQuery必须遍历DOM两次,这相对来说是非常昂贵的。谢谢。我想你的更新与ZZllalani有竞争条件,你丢失了你的更改。