为什么我不能将这个元素引用设置为一个变量?
Why can't I set this element reference as a variable?
我有这样一个javascript对象(简化)。
var MyObject = (function(){
var propertyOne = $('.links li:first-child');
var propertyTwo = $('.links .active');
function startup()
{
propertyOne.addClass("class"); //Works
propertyTwo.addClass("class2"); //Does not work
$('.links .active').addClass("class2"); // Works
}
return {
init: function()
{
startup();
}
}
});
我选择propertyOne和propertyTwo的方式有什么不同?我不明白为什么
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完全加载之后(或者至少在加载了与$('.links .active')
对应的元素之后)调用init()
方法,那么我前面描述的情况可能会发生。
无论如何,您应该真正专注于学习如何调试这样的东西,以及为什么这个特定的尝试不起作用。这个过程中的主要步骤是在var propertyTwo = $('.links .active')
行之后记录到控制台propertyTwo
。如果控制台显示[]
(至少在Chrome中),这意味着没有元素匹配,这将支持我所说的正在发生的事情。
相关文章:
- 导航到特定事件的另一个变量页面
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- 使用mongodb更新中的一个变量
- 将节点数据分配给另一个变量jstree
- Javascript:在激发函数后返回一个变量以供使用
- 替换另一个变量对象中的变量值
- 什么'它的意思是当一个变量位于括号外时
- 可以't将sessionStorage设置为Javascript中的一个变量
- 在Flickr API的标签参数中传递一个变量
- 从Jquery函数中获取一个变量
- 为两个ID设置一个变量的正确语法
- 如何将变量值附加到另一个变量
- 通过加载函数发送一个变量
- 如何将一个变量从一个控制器传递到合金中的另一个控制器
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- Javascript未在其中一个变量上输出0
- 保留“;这个“;在一个变量中;这个“;使用此变量
- 是否可以在另一个变量中使用未声明的变量
- JS/ANGULAR使用一个变量's值作为另一个对象的键
- 如何每秒从一个变量中提取一定次数的javascript/html