当我这样做时:
var x = $("#listing")
我找回了标识为listing
,
当我$(x)
或$($("#listing"))
时,我也会这样做。
b / w两个有什么不同?
答案 0 :(得分:3)
$()
会将某些内容转换为jQuery object(或集合)。这与Javascript变量不同。
当您将#listing
存储在var x = '#listing'
之类的变量中时,您只需将字符串传递给jQuery构造函数,然后由Sizzle,jQuery&#39将其解释为选择器。 ; s选择器引擎。
在提供的示例中,以下两行之间没有区别:
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
相同。
答案 1 :(得分:0)
一旦找到宿舍项目,你的x变量就成了一个jQuery对象。
运行var x = $('#listing'); x包含它的所有内容。
因此,您可以运行x.addClass(' thing')
答案 2 :(得分:0)
添加$是创建jQuery对象,它不是普通变量。您可以从DOM元素,另一个jQuery对象或普通的javascript变量创建jQuery对象。尝试运行<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
console.log(x)
,它会告诉您所有差异。