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”]