如果缓存var:
var something = $('#something');
我已经看到以后用作:
$(something).doAction();
something.doAction();
使用其中任何一个都有区别吗?我已经开始使用something.doAction(),因为它看起来更干净,更容易阅读。但是我想知道这是否会导致任何问题?
答案 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'