缓存变量时,调用它的最佳方法是什么?

时间:2013-10-07 14:52:30

标签: javascript jquery

如果缓存var:

var something = $('#something');

我已经看到以后用作:

$(something).doAction();
something.doAction();

使用其中任何一个都有区别吗?我已经开始使用something.doAction(),因为它看起来更干净,更容易阅读。但是我想知道这是否会导致任何问题?

4 个答案:

答案 0 :(得分:5)

$(...)返回一个jQuery对象。

如果你把一个jQuery对象放在一个变量中,那么当你稍后检查它时,变量仍然会在其中包含一个jQuery对象,就像你可能放入变量中的任何其他东西一样。

没有神奇的小精灵来摆脱你背后的jQuery对象 (除非你不小心把其他东西放在其他地方的变量中)

答案 1 :(得分:1)

这与jQuery无关。这只是Javascript的基础。

var x = foo();
x.something();

当然与foo().something()相同。去学习编程或Javascript,直到这有意义。

答案 2 :(得分:0)

只是保留这个jquery对象以便以后使用它或避免重复。

var $button = $('#button');

$button.click(function(){
//some code here
});

//now applying some style to it
$button.css({color:"#ccc",background:"#333"});

或者可以替换为

var $button = $('#button').css({color:"#ccc",background:"#333"});

$button.click(function(){
//some code here
});

或者

$('#button').css({color:"#ccc",background:"#333"}).click(function(){
//some code here
});;

更新

有时候如果你找一个按钮,jquery会返回按钮,而不是对象,所以要编辑或做一些动作,你把它作为参数传递给jquery构造函数。

Here a little example。您只是在寻找按钮,而jquery返回该按钮,但如果您需要应用某些样式,事件等,则需要将其作为参数传递给jquery contructor ($ or jQuery)And here another without the constructor that does not work

答案 3 :(得分:0)

something是一个jQuery对象,没有必要将它放在带有美元符号的括号中:$(something)

jQuery选择器返回jQuery对象,例如$('#something')

良好的命名实践是将某些东西命名为$ something,因此您知道该变量包含jQuery对象。

同样好用$(..)示例,将html包装为字符串以获取jQuery对象,如下所示:

$divObject = $('<div>Some text</div>');
$divObject.text(); // value is 'Some text'