Javascript 为什么可以';我是否将此元素引用设置为变量?
我有一个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
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