0

如果你缓存一个 var:

var something = $('#something');

我已经看到后来被用作:

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

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

4

4 回答 4

5

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

如果您将 jQuery 对象放入变量中,当您稍后检查它时,该变量仍将包含一个 jQuery 对象,就像您可能放入变量中的任何其他内容一样。

没有神奇的小精灵会来摆脱你背后的 jQuery 对象。
(除非你不小心把别的东西放在变量的别处)

于 2013-10-07T14:53:37.267 回答
1

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

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

当然是一样的foo().something()。去学习编程或 Javascript,直到这有意义。

于 2013-10-07T14:58:52.487 回答
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 构造函数。

这里举个小例子。您只是在寻找按钮,jquery 返回该按钮,但如果您需要应用一些样式、事件等,则需要将其作为参数传递给 jquery 构造函数($ or jQuery)而这里另一个没有不起作用的构造函数

于 2013-10-07T14:56:31.563 回答
0

something是一个 jQuery 对象,不需要将它放在带有美元符号的括号中,如下所示: $(something)

jQuery 选择器返回 jQuery 对象,这里就是这种情况$('#something')

好的命名习惯是将某些东西命名为 $something,这样您就知道该变量包含 jQuery 对象。

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

$divObject = $('<div>Some text</div>');
$divObject.text(); // value is 'Some text'
于 2013-10-07T15:06:48.133 回答