JQuery - object.id не определен, когда его не должно быть - PullRequest
6 голосов
/ 23 августа 2009

Я работаю с JQuery и сталкиваюсь с этой странной (или, возможно, глупой) ошибкой.

В моем HTML у меня есть:

<input type="password" name="repeatPassword" id="id_repeatPassword" /> 

А потом в моем коде JavaScript у меня есть:

validateRepeatPassword($('#id_repeatPassword'));

К сожалению в функции "validateRepeatPassword":

function validateRepeatPassword(o) {
        // this works
        if (o.value == $("#id_password").val()) {
        // this returns "undefined"
        alert(o.id)
...
}

почему

Ответы [ 2 ]

14 голосов
/ 23 августа 2009

o - это ссылка на объект jQuery, а не ссылка на элемент DOM. Внутри вашей функции validateRepeatPassword выполните:

alert( $(o).attr('id') );

Если вы хотите получить доступ к свойству прямого элемента DOM из объекта jQuery,

alert( o[0].id )

alert( o.get(0).id );
2 голосов
/ 23 августа 2009

Внутри вашей функции o является объектом jQuery, вы должны получить идентификатор с помощью функции attr , равной o.

alert(o.attr('id'));

Но если вы хотите напрямую работать с элементом DOM в функции validateRepeatPassword, вы можете передать ссылку на элемент:

validateRepeatPassword($('#id_repeatPassword').get(0));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...