2009-08-23 2 views
5

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

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

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

И тогда в моем яваскрипта коде у меня есть:

validateRepeatPassword($('#id_repeatPassword')); 

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

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

почему?

ответ

13

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

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

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

alert(o[0].id) 

alert(o.get(0).id); 
+1

O уже объект JQuery – cletus

+0

Я знаю, что, но обертывание его внутри функции сделает его более мягким, поскольку оно также примет DOM Elements в аргументе. Это не огромная сделка. –

+0

классный, но есть ли способ использовать jQuery для извлечения obeject в качестве ссылки на элемент DOM? – 2009-08-23 02:20:45

2

Внутри вашей функции o является объектом JQuery, вы должны захватить идентификатор с attr функция o.

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

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

validateRepeatPassword($('#id_repeatPassword').get(0)); 
Смежные вопросы