2012-03-22 2 views
0

Если я пишуПравильный способ использовать свободно синтаксис в JQuery

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

Я не получаю IntelliSense в Visual Studio для .attr (...), указывающих, что синтаксис не совсем верно.

однако если я пишу:

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

я IntelliSense, что указывает на это правильный путь, чтобы написать эту

Однако оба Синтаксисы работают хорошо, им при условии, что это правильно использовать второй способ , это право & Почему оба работают?

+1

Intellisense может работать только до сих пор, он не должен использоваться, чтобы решить, какой путь лучше или даже если синтаксис правильный. Это просто инструмент, который поможет вам. –

+1

Да, я вижу, что сейчас это немного помогает им на кривой обучения, но я понимаю, что вы говорите и делаете: не доверяйте справки, читайте документы. Спасибо всем – LenPopLilly

ответ

2

Второй способ работает, потому что $($some_jQuery_object) просто возвращает тот же объект jQuery, поэтому независимо от того, сколько оберток jQuery вы ударяете по элементу DOM, вы получаете тот же объект.

Тем не менее, первый способ действителен, правилен и предпочтительнее. Visual Studio явно нуждается в исправлении ошибок.

+0

Маркировка как ответ, потому что вы сначала дали ответ, и вам нужно нажать 10K: – LenPopLilly

6

Второй способ: не более правильный. Это эквивалентно первому пути, но менее эффективен. Второй способ менее эффективен, поскольку он повторно jQuerified объект jQuery, что совершенно не нужно, когда вы уже работаете с объектом jQuery. Повторить: если $foo уже является объектом jQuery, существует абсолютно нет причин написать $($foo), когда-либо.

Они оба работают, потому что они эквивалентны.

+0

Забота о разработке отчета об эффективности? – Ben

+0

@Ben см. Edit –

+0

Thats точно, что я изначально думал, но VS intellisense бросил меня. – LenPopLilly

Смежные вопросы