Javascript动态元素Id

时间:2011-07-11 00:33:23

标签: javascript getelementbyid

我正在尝试通过我的函数传递一个元素并输出id。

这就是我的意思:

<input id='password' style="display:inline-block" type="password" name='Password' onKeyDown="setTimeout('validate(this)', 10)" />

和javascript:

var validate = function(element)
{
    alert(element.id);        
}

这是正确的方法吗?当我发出警报时,所有我得到的都是未定义的谢谢。

1 个答案:

答案 0 :(得分:4)

setTimeout函数调用时,this指针不再指向input元素,而是指向window对象。

你能做的是

onKeyDown="var self=this;setTimeout(function(){validate(self);}, 10)"

或者更好:

var validateFn = function(element) {
    return function(){
        alert(element.id);
    };
}

并在元素上:

onKeyDown="setTimeout(validateFn(this), 10)"