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

时间:2012-03-22 19:16:52

标签: jquery

如果我写

$month.find('.d-row').attr('id', 'myid');

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

如果我写的话:

$($month.find('.d-row')).attr('id', 'myid');

我得到intellisense,表明这是写这个

的正确方法

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

2 个答案:

答案 0 :(得分:6)

第二种方式是更正确。它等同于第一种方式,但是效率较低。第二种方式效率较低,因为它重新jQuery了一个jQuery对象,当你已经在使用jQuery对象时这是完全没必要的。重申一下:如果$foo已经是jQuery对象,那么永远只有没有理由来编写$($foo)

它们都有效,因为它们是等效的。

答案 1 :(得分:2)

第二种方式有效,因为$($some_jQuery_object)只返回相同的jQuery对象,因此无论你在DOM元素周围使用多少jQuery包装器,都会获得相同的对象。

那就是说,第一种方式是有效的,正确的,更可取的。 Visual Studio显然需要修复错误。