何时使用$符号,何时不用?

4
我已使用以下变量选择了一个控件。
var txt = $("#text1");

现在,当我需要处理文本框的事件时,我是需要把它作为$(txt)来引用还是直接用txt即可?

$(txt).keydown(function() {})

或者

txt.keydown(function(){})

什么是优势?请以变量txt作为背景进行解释。
4个回答

17
如果 txt 已经是一个 jQuery 对象,就没必要再使用 $(txt) 了,因为它只会增加额外的处理步骤来返回相同的内容。

5

最好的方法是声明变量,这样你就知道它们是什么。基本上,我想说的是应用一些应用程序匈牙利命名法,并在jQuery变量前加上$前缀。

var $text1 = $("#text1");  // this is a jQuery object
var text1 = $text1[0];     // this is not

如果一个框架要求你必须采用这样的做法进行演进,那是非常令人不安的。 - Rakesh Pai
3
首先,没有人在暗示这是必须的。其次,我怀疑你从未使用过大量的jQuery,否则你会知道这个简单约定有多么有用。记住,Apps Hungarian是好的匈牙利标记法。 - Peter Bailey

0
关于Chad的回答,再提供一些信息。 $()是常用函数document.getElementById()的快捷方式。
一旦您查找并存储了对象的值,您就不需要再次查找它。正如Chad所提到的,问问自己变量是一个对象还是一个名称(字符串),如果是名称,您将不得不查找该对象。

你是错误的。从 OP 的示例代码中可以清楚地看出,他正在使用 jQuery,此时 $(…) 是 jQuery 的“美元函数”:http://docs.jquery.com/Core/jQuery - Ben Blank

0
根据我的经验,与将其分配为引用并使用引用调用相同方法/属性相比,使用$(txt)会产生更可预测的结果。这可能是我个人的迷信,但在工作中,我们中的一些人曾因使用诸如txt之类的引用而受挫,而不是一旦txt被分配后使用隐式的$(txt)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接