jQuery,我想要一个解释.为什么这样做?$($( '格'))

Tay*_*Mac 1 jquery css-selectors

我很好奇.这个:

$('div'), this $($('div')), and this $($($('div')))... and so on
Run Code Online (Sandbox Code Playgroud)

似乎所有工作都是HTML元素的选择器.有谁知道为什么这样做,如果有任何实际的(除了冗余),这样做时会出现问题?

http://jsfiddle.net/NpT2b/

Vot*_*ple 7

jQuery函数可以将现有的jQuery对象作为其参数.这是记录和故意行为.请看这里的手册:http://api.jquery.com/jQuery/

它也不是HTML元素特有的.$( $('#foo') )会工作.

这其中的一个原因,这是我在过去所做的开发是让一个函数接受或者选择 jQuery对象.所以我可以编写一个函数:

function excite(target) {
    $(target).append(' This is exciting!');
};
Run Code Online (Sandbox Code Playgroud)

这可以安全地与excite('.foo');或使用excite( $('p:not(.exciting-already)').empty() );