当我这样做时:
var x = $("#listing")
我返回了 id 为 listing
的 html 元素,
当我执行 $(x)
或 $($("#listing"))
时,我得到了相同的结果。
两者的区别是什么?
最佳答案
$()
会将某些内容转换为 jQuery object (或集合)。这与 Javascript 变量不同。
当您将 #listing
存储在诸如 var x = '#listing'
的变量中时,您只是将一个字符串传递给 jQuery 构造函数,然后将其解释作为选择器 Sizzle , jQuery 的选择器引擎。
在提供的示例中,以下两行之间没有区别:
var x = $('#listing');
var x = '#listing',
$x = $(x);
在第一个片段中,x
与第二个片段中的 $x
相同。
为了完整性,jQuery 构造器也可以接受一个混合类型变量作为它的第一个参数;它不一定是一个字符串。例如,可以使用以下语法将 DOMElement
变量转换为 jQuery 对象:
var ele = document.getElementById('myItem'),
$ele = $(ele);
注意 $ele
现在可以访问 jQuery 自己的函数,例如 addClass()
等。请参阅 this demo .
此外,将 jQuery 对象传递给构造函数将简单地返回相同的 jQuery 对象。例如,给定以下代码段:
var $x = $('#listing'),
$x2 = $( $x );
$x
与 $x2
相同。
关于javascript - jquery 变量到 $(jquery 变量),两者有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44522412/