JQuery – object.id在不应该的时候是未定义的
我正在使用JQuery,我遇到了这个奇怪的(或者可能是愚蠢的)错误。
在我的HTML中,我有:
然后在我的JavaScript代码中我有:
validateRepeatPassword($('#id_repeatPassword'));
不幸的是在函数“validateRepeatPassword”中:
function validateRepeatPassword(o) { // this works if (o.value == $("#id_password").val()) { // this returns "undefined" alert(o.id) ... }
为什么?
o是对jQuery对象的引用,而不是DOM元素引用。 在validateRepeatPassword函数内部执行:
alert( $(o).attr('id') );
如果要从jQuery对象访问直接DOM元素的属性,
alert( o[0].id ) alert( o.get(0).id );
在函数内部o
是一个jQuery对象,你应该使用o
的attr函数来获取id。
alert(o.attr('id'));
但是,如果您想直接使用validateRepeatPassword
函数上的DOM元素,则可以传递对该元素的引用:
validateRepeatPassword($('#id_repeatPassword').get(0));