Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery变量vs$(jquery变量),两者的区别是什么_Javascript_Jquery - Fatal编程技术网

Javascript jquery变量vs$(jquery变量),两者的区别是什么

Javascript jquery变量vs$(jquery变量),两者的区别是什么,javascript,jquery,Javascript,Jquery,当我这样做时: var x = $("#listing") 我返回id为的html元素,清单为 当我做$(x)或$($(“#列表”))时,我得到了相同的结果 二者之间的区别是什么?您的x变量在找到宿舍项目后就成为了一个jQuery对象 一旦运行var x=$(“#列表”);x拥有它所拥有的一切 因此,您可以运行x.addClass('thing')$()将某物转换为(或集合)。这与Javascript变量不同 当您将#listing存储在变量(如var x='#listing')中时,只需将字

当我这样做时:

var x = $("#listing")
我返回id为
的html元素,清单为

当我做
$(x)
$($(“#列表”))
时,我得到了相同的结果


二者之间的区别是什么?

您的x变量在找到宿舍项目后就成为了一个jQuery对象

一旦运行var x=$(“#列表”);x拥有它所拥有的一切

因此,您可以运行x.addClass('thing')

$()
将某物转换为(或集合)。这与Javascript变量不同

当您将
#listing
存储在变量(如
var x='#listing'
)中时,只需将字符串传递给jQuery构造函数,然后jQuery的选择器引擎将其解释为选择器

在提供的示例中,以下两行之间没有区别:

var x = $('#listing');

var x = '#listing',
    $x = $(x);
在第一个代码段中,
x
与第二个代码段中的
$x
相同

为了完整性,jQuery构造函数还可以接受混合类型变量作为其第一个参数;它不必是字符串。例如,可以使用以下语法将
domeElement
变量转换为jQuery对象:

var ele = document.getElementById('myItem'),
    $ele = $(ele);
请注意,
$ele
现在可以访问jQuery自己的函数,如
addClass()
等。请参阅


此外,将jQuery对象传递给构造函数只会返回相同的jQuery对象。例如,给定以下代码段:

var $x  = $('#listing'),
    $x2 = $( $x );

$x
$x2

相同,添加$x是创建jQuery对象,它不是普通变量。您可以从DOM元素、另一个jQuery对象或普通javascript变量创建jQuery对象。尝试运行
console.log(x)
console.log($(x))
它将告诉您所有的差异。

$(…)
将对象转换为jQuery对象/集合。在执行
$(x)
时,您只需从
x
创建一个新的jQuery对象,它本身就是一个jQuery对象——它是冗余的,没有任何用途。然而,
$var
var
之间没有区别,这只是大多数开发人员用来区分jQuery对象和本机JS对象/变量的命名约定。只是jQuery根据您给他的元素重新创建选择器。这不完全正确。
x
变量不是生成jQuery对象,而是用来构造一个新的对象。如果我们在这里放入$(x),我的意思是用$包装jQuery元素,我知道这毫无意义,但只是好奇,会发生什么事?@sahil控制台记录它并检查您看到的内容。有时候,当你自己做事情时更容易理解。@sahil你是说
$($x)
<代码>$(x)将产生与所解释的
$(“#listing”)
相同的结果。当我在控制台中执行相同操作时,只会交换顺序,即[ul#listing2.LLko,选择器:“#listing2”,上下文:document]与[ul#listing2.LLko,上下文:document,选择器:“#listing2”]