$(var) 和 var 有什么区别?

What is the difference between $(var) and var?

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

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

有什么区别?

当您将 jQuery 对象传递给 $ 时,它将 return 包含与原始 jQuery 对象相同元素的 jQuery 对象你通过了。它们基本相同(尽管对象不是 ===)。您可以根据需要在 $ 中嵌套 jQuery 个对象,这不会有什么不同,只是这样做很奇怪。

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

您可以向 jQuery 函数传递多种不同类型的值。在这种情况下,您传递的是 a jQuery selection 文档中提到的内容:

selection
Type: jQuery
An existing jQuery object to clone.

所以你正在克隆 var

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