在jQuery中使用流畅语法的正确方法

Len*_*lly 0 jquery

如果我写

$month.find('.d-row').attr('id', 'myid');
Run Code Online (Sandbox Code Playgroud)

我没有在Visual Studio中获得.attr(...)的 intellisense,表明语法不太正确.

但是如果我写的话:

$($month.find('.d-row')).attr('id', 'myid');
Run Code Online (Sandbox Code Playgroud)

我得到intellisense,表明这是写这个的正确方法

但是,两种语法都可以正常工作,我假设使用第二种方式是正确的,这是正确的,为什么两者都有效?

Mat*_*all 6

第二种方式正确.它相当于第一种方式,但效率较低.第二种方法效率较低,因为它重新jQuery了一个jQuery对象,当你已经在使用jQuery对象时,这是完全没有必要的.重申:如果$foo已经是一个jQuery对象,那么绝对没有理由$($foo).

它们都起作用,因为它们是等价的.