据我了解,您可以将DOM元素用作jQuery选择器,例如$(document)
。
那么为什么jQuery attr()
函数在这两种情况下都起作用?
let v = $("#nodeID");
//First case
$(v).attr("href","www1"); //works
//Second case
v.attr("href","www2"); //also works
有什么区别?
答案 0 :(得分:2)
当您将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>
答案 1 :(得分:1)
您可以将多种值传递给jQuery函数。在这种情况下,您将传递a jQuery selection,文档中对此内容进行了说明:
选择
类型:jQuery
现有的要克隆的jQuery对象。
因此,您正在克隆var
。
在这种情况下,这完全没有意义。 (如果您要更改值,但需要保留原始值以在其他地方使用,则可能会很有用。)