Javascript 为什么可以';我是否将此元素引用设置为变量?

Javascript 为什么可以';我是否将此元素引用设置为变量?,javascript,jquery,Javascript,Jquery,我有一个javascript对象(简化) 我选择房产一和房产二的方式有什么不同?我不明白为什么 propertyOne.addClass("class"); //Works $('.links .active').addClass("class2"); // Works 然而 propertyTwo.addClass("class2"); //Does not work 有人能帮我解释一下吗?在调用var propertyTwo=$('.links.active')时,property

我有一个javascript对象(简化)

我选择房产一和房产二的方式有什么不同?我不明白为什么

propertyOne.addClass("class");  //Works
$('.links .active').addClass("class2");  // Works
然而

propertyTwo.addClass("class2");  //Does not work

有人能帮我解释一下吗?

在调用
var propertyTwo=$('.links.active')
时,propertyTwo的DOM元素必须不存在,而在调用
startup()
时它确实存在

要确认这一点,我们需要有关脚本的更多信息。例如,如果在DOM完全加载之前创建了
MyObject
,然后在DOM完全加载之后调用
init()


无论如何,您应该真正关注如何调试这样的东西,以及为什么这个特定的尝试不起作用。这个过程中的主要步骤是在
var propertyTwo=$('.links.active')
行之后登录控制台
propertyTwo
。如果控制台显示
[]
(至少在Chrome中),这意味着没有匹配的元素,这将支持我所说的正在发生的事情。

在调用
var propertyTwo=$('.links.active')
时,propertyTwo的DOM元素必须不存在,而在调用
startup()
时它确实存在

要确认这一点,我们需要有关脚本的更多信息。例如,如果在DOM完全加载之前创建了
MyObject
,然后在DOM完全加载之后调用
init()
方法(或者至少在与
$('.links.active')对应的元素之后),则可能会发生我前面描述的情况
已加载


无论如何,您应该真正关注如何调试这样的东西,以及为什么这个特定的尝试不起作用。这个过程中的主要步骤是在
var propertyTwo=$('.links.active')
行之后登录控制台
propertyTwo
。如果控制台显示
[]
(至少在Chrome中),这意味着没有匹配的元素,这将支持我所说的正在发生的事情。

+1.jQuery的长度/大小是诊断这种情况的最佳方法啊,你是对的,我想我知道你要做什么。加载DOM后应用“active”类(在脚本的另一部分)。是否有任何方法可以将该元素设置为对象的属性?可能,但我需要查看更多代码。在运行您在文章中输入的代码之前,您可以设置“active”类吗?这将是一个非常简单的解决方案。如果没有,我真的需要查看更多代码(HTML和JS)提供进一步的帮助。@maxedison我现在得到了。问题是我将对象属性中的值设置为DOM中还不存在的值(正如您所说的)。我更改了脚本,使变量以“”开头,然后在dom中创建元素的操作完成后重置它。我现在明白了,谢谢=)+1.jQuery的length/size是诊断这种情况的perfict方法啊,你说得对,我想我知道你要做什么。加载DOM后(在脚本的另一部分中)会应用“active”类。是否有任何方法可以将该元素设置为对象的属性?可能,但我需要查看更多代码。在运行您在文章中输入的代码之前,您可以设置“active”类吗?这将是一个非常简单的解决方案。如果没有,我真的需要查看更多代码(HTML和JS)提供进一步的帮助。@maxedison我现在得到了。问题是我将对象属性中的值设置为DOM中还不存在的值(正如您所说的)。我更改了脚本,使变量以“”开头,然后在dom中创建元素的操作完成后重置它。我现在明白了,谢谢=)
propertyTwo.addClass("class2");  //Does not work