对象 $( "#elementID" ) 在作为字符串调用时没有方法



这里有个问题。我在谷歌和网站上搜索了几个小时,但找不到解决办法。

我有3个变量,存储类,节或id 。我像下面这样把它们捆绑在一起:

var clickedElement = '$("' + headParentID + parentClass + ' ' + thisNodeName + '")';

clickedElement的值如下:

$("#navigation .logo img")

下一步是使用以下代码查找这个"元素"的x坐标:

var x = clickedElement.offset().left;

问题来了。我在控制台日志中得到以下错误:

Uncaught TypeError: Object $("#navigation .logo.six. "columns img")没有方法'offset'

但是当我使用的输出clickkedelement 并把它放在代码中,就像下面的例子一样,它确实给了我x坐标..

var x = $("#navigation .logo img").offset().left;

有没有jQuery/Javascript英雄可以解开这个谜团?这对我意义重大!

谢谢!

您在这里做的是实际上并没有生成一个jQuery对象。你实际上只是在连接一个字符串:

var clickedElement = '$("' + headParentID + parentClass + ' ' + thisNodeName + '")';
// result (note the quotes surrounding the object: 
// clickedElement = '$("#navigation .logo img")'

你要做的是像这样:

var clickedElement = $( headParentID + parentClass + ' ' + thisNodeName );
// result: clickedElement = $("#navigation .logo img")

你得到的错误基本上是说一个字符串对象没有offset()方法。

您实际上是在字符串上搜索方法.offset()

,

var clickedElement = $(headParentID + parentClass + " " + thisNodeName);
var x = clickedElement.offset().left;

最新更新