我很好奇。这个:
$('div'), this $($('div')), and this $($($('div')))... and so on
似乎都可以作为 HTML 元素的选择器。有谁知道为什么这样做,如果有任何实际(除了冗余),这样做时会出现问题吗?
我很好奇。这个:
$('div'), this $($('div')), and this $($($('div')))... and so on
似乎都可以作为 HTML 元素的选择器。有谁知道为什么这样做,如果有任何实际(除了冗余),这样做时会出现问题吗?
jQuery 函数可以将现有的 jQuery 对象作为其参数。这是记录在案的故意行为。看看这里的手册:http: //api.jquery.com/jQuery/
它也不特定于 HTML 元素。$( $('#foo') )
会工作。
我过去利用的一个原因是让函数接受选择器或jQuery对象。所以我可以写一个函数:
function excite(target) {
$(target).append(' This is exciting!');
};
可以安全地使用excite('.foo');
或使用excite( $('p:not(.exciting-already)').empty() );
如果 jQuery 接收到一个 jQuery 对象,它不需要做任何事情,因此返回原样的 jQuery 对象。
这通常用于处理不道德的编码人员,他们可能会不小心将 jQuery 对象放回$()
jQuery 选择器将字符串、HTML 元素或其他 jQuery 对象作为选择器。在这种情况下,您的第一个示例选择<div>
页面上的所有元素。在您的第二个示例中,您重新选择了所有<div>
元素的 jQuery 集。在您的第三个示例中,您正在重新选择集合。除了完全和完全冗余之外,这可以无限期地继续下去而不会出现任何问题。