$(var) 和 var 有啥区别?

Posted

技术标签:

【中文标题】$(var) 和 var 有啥区别?【英文标题】:What is the difference between $(var) and var?$(var) 和 var 有什么区别? 【发布时间】:2019-09-21 20:50:25 【问题描述】:

据我了解,您可以使用 DOM 元素作为 jQuery 选择器,例如 $(document)。 那么为什么 jQuery attr() 函数在这两种情况下都有效呢?

let v = $("#nodeID");
//First case
$(v).attr("href","www1"); //works
//Second case
v.attr("href","www2"); //also works

有什么区别?

【问题讨论】:

两者相同,没有区别,被指定为参考。 @MurtazaHussain — 你错了。 $(v) 不会创建对 v 的引用(或对与 v 相同的对象已被引用) v 已经是一个 jquery 对象,所以你不需要再次$(v)(除非你打算克隆它) es 回复您已删除的问题:截图不错。这是用于创建您正在查看的对象的构造函数的名称。顾名思义,您正在查看缩小代码的结果,但如果您在 Chrome 控制台中执行此操作,您可以看到相同的格式:function e() new e; 您将在输出中看到e 。 (顺便说一句,在对该问题的评论中,您似乎认为我对这个问题投了反对票。我没有。通常情况下,评论的人不是这个人投反对票。) @T.J.Crowder 确实是缩小版,我在“开发工具”的“源”中使用“美化”。非常感谢,真的很有帮助。 【参考方案1】:

当您将 jQuery 对象传递给 $ 时,它将返回一个 jQuery 对象,其中包含与您传递的原始 jQuery 对象中相同的元素。它们基本相同(尽管对象不是===)。您可以在$ 中任意嵌套jQuery 对象,这不会有什么不同,只是这样做很奇怪。

$($($('div'))).text('foo');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>

【讨论】:

【参考方案2】:

您可以将许多不同类型的值传递给 jQuery 函数。在这种情况下,您传递的是a jQuery selection,文档中说:

选择 类型:jQuery 要克隆的现有 jQuery 对象。

所以你正在克隆var

在这种情况下,这是完全没有意义的。 (如果您要更改值但需要保留原始值以在其他地方使用,这可能很有用)。

【讨论】:

以上是关于$(var) 和 var 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

使用“let”和“var”有啥区别?

使用“let”和“var”有啥区别?

使用“let”和“var”有啥区别?

使用“let”和“var”有啥区别?

“var”和“out”参数有啥区别?

Bash shell 中的 $var、"$var" 和 "$var" 有啥区别?