我正在使用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)
...
}
为什么?
答案 0 :(得分:14)
o是对jQuery对象的引用,而不是DOM元素引用。在validateRepeatPassword函数内部执行:
alert( $(o).attr('id') );
如果要从jQuery对象访问直接DOM元素的属性,
alert( o[0].id )
alert( o.get(0).id );
答案 1 :(得分:2)
在你的函数o
中是一个jQuery对象,你应该使用o
的{{3}}函数来获取id。
alert(o.attr('id'));
但是如果你想直接使用validateRepeatPassword
函数上的DOM元素,你可以传递对元素的引用:
validateRepeatPassword($('#id_repeatPassword').get(0));