Разные селекторы возвращают один и тот же объект с разными прототипами? - PullRequest
0 голосов
/ 19 марта 2012

Я действительно новичок в JavaScript и jQuery. У меня вопрос такой.

У меня есть две формы с идентификатором id1 и id2 в моем документе. Формы имеют метод validate (из модуля проверки jQuery).

Когда я делаю:

$(#id1).validate()

... это работает. Но когда я делаю:

$('form[id^="id"]')[0].validate()

... там написано TypeError: Object #<HTMLFormElement> has no method 'validate'. Это выглядит странно для меня, потому что я вызываю validate на тот же объект.

1 Ответ

1 голос
/ 19 марта 2012

Это разные объекты, потому что во втором примере вы извлекаете элемент DOM с индексом 0 ...

 //  v------returns jQuery object
$('#id1').validate()

 //     v------returns jQuery object
$('form[id^="id"]')[0].validate()
 //                 ^----------extracts the DOM element

Правильный эквивалент будет ...

$('form[id^="id"]').validate()

... или, если вы хотели только первый элемент ...

$('form[id^="id"]').eq(0).validate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...