$(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
。
在这种情况下,这完全没有意义。 (如果您要改变值但需要保留原始值以在其他地方使用,它会很有用)。
据我了解,您可以使用 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
。
在这种情况下,这完全没有意义。 (如果您要改变值但需要保留原始值以在其他地方使用,它会很有用)。