Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用offset()记录错误。top,为什么?_Javascript_Jquery - Fatal编程技术网

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

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

我试图确定元素的顶部偏移量,控制台记录了一个错误,尽管JQuery的文档说应该这样写:

$('.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()将返回第一个元素的偏移量,因此它无论如何都不会崩溃。轻微优化:do
var myObject=$('.myObject')然后使用
myObject
。这就避免了jQuery必须遍历DOM两次,这相对来说是非常昂贵的。谢谢。我认为您的更新与Zzzalani存在竞争条件,您丢失了更改。轻微优化:do
var myObject=$('.myObject')然后使用
myObject
。这就避免了jQuery必须遍历DOM两次,这相对来说是非常昂贵的。谢谢。我想你的更新与ZZllalani有竞争条件,你丢失了你的更改。