javascript - jquery 变量到 $(jquery 变量),两者有什么区别

标签 javascript jquery

当我这样做时:

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/

相关文章:

javascript - Jquery - 在客户端浏览器尝试下载图像之前删除图像

javascript - 基于实时时钟

javascript - 如何在 ReactJS 中指定 null prop 类型?

javascript - jquery 从 e.target 中删除事件监听器

javascript - 按左或右按钮无法更改颜色

javascript - 作用域在 JavaScript 中是如何工作的?为什么这个功能有效?

jquery - 未使用具有指定类的 jquery 创建 div

javascript - 从文件名javascript中删除非法字符

javascript - 在表行鼠标悬停时显示外部元素

javascript - 有效地使用 setInterval/clearInterval