我有以下内容:
var doHandler = function (link, form, close) {
var $form = form;
var $link = link;
var dialogTitle = $form.find("#Title").val();
// some code
}
我想将其更改为:
function doTask(??) {
var dialogTitle = $form.find("#Title").val();
// some code
}
var doHandler = function (link, form, close) {
var $form = form;
var $link = link;
doTask(??)
}
有人可以解释一下:
很抱歉,但是真正令人困惑的是有什么区别以及为什么$
答案 0 :(得分:4)
这是命名标准,用于声明 jQuery对象。
因此,通过指定 $ ,您现在可以让变量保存jQuery选择器的结果。
以下是如何简化流程的简单示例:
答案 1 :(得分:4)
分配$form = form
似乎对您发布的代码无效,但这取决于// some code
的作用。
使用$
为变量名添加前缀的约定用于表示该变量包含jQuery对象。
如果代码改为
var $form = $(form);
然后这将解释所有内容:$form
是一个包装form
的jQuery对象(可能是一个普通的DOM元素)。
对于您的其他问题:
doTask
完成工作所需的任何参数doTask
在源代码中doHandler
之前,则无关紧要答案 2 :(得分:1)
var $form = form;
var $link = link;
这些是定义的变量。你可以声明包含$的varibale。
$ form是一个变量对象。如果你想把它作为jquery对象。用jquery环绕。
例如:$(form)
//现在这是jquery对象
答案 3 :(得分:1)
变量名中的$
没什么特别之处,可以用于任何变量。
但是,正如@Jon指出的那样,使用$
作为前缀的一般约定是声明一个jQuery对象。
答案 4 :(得分:0)
$
字符只是定义变量时可以使用的有效字符。
当对象本身是jQuery对象时,我通常使用附加到变量的$
字符。除此之外,它没有附加任何附加信息。
答案 5 :(得分:0)
var $form
表示您声明了变量名$form
var $form = form
表示您将表单值分配给变量$ form
与$ link相同
答案 6 :(得分:0)
字符$
可以在变量名中使用,就像任何其他有效字符一样,包含$
的变量名在语言中没有特殊含义。
由于表单和链接的变量是局部变量,您必须将它们传递给函数才能使用它们。
不必在使用它的代码之上定义函数,只要它在相同(或以前的)文件或相同(或以前的)脚本块中。
在doTask
函数中,既不使用变量form
也不使用变量$form
,因为它们都是doHandler
函数的本地变量。您使用发送到该函数的参数。此参数也可以命名为form
或$form
,但它也可以命名为完全不同的名称。
var doHandler = function (link, form, close) {
var $form = form;
var $link = link;
doTask($form, $link);
};
function doTask(someForm, someLink) {
var dialogTitle = someForm.find("#Title").val();
// some code
}
将参数link
和form
复制到局部变量$link
和$form
似乎毫无意义。你也可以使用参数:
var doHandler = function (link, form, close) {
doTask(form, link);
};
function doTask(someForm, someLink) {
var dialogTitle = someForm.find("#Title").val();
// some code
}