GetElementById无法获得价值

时间:2013-10-15 08:47:07

标签: javascript get element

你知道为什么会这样吗

function deleteInputOnClick(input){
    champ = document.getElementById(input);
    if(champ.value =='E-mail'){
        champ.value = "";
    }
}

可以这样工作

function deleteInputOnClick(input){
    champ = document.getElementById(input).value;
    if(champ=='E-mail'){
        champ= "";
    }
}

它没有?

这可能是一个愚蠢的小错误,但我真的不知道它可能在哪里。

感谢的

3 个答案:

答案 0 :(得分:4)

您没有以第二种方式将值设置回元素,您只需将其分配给局部变量,您仍然需要执行document.getElementById(input).value = champ;

答案 1 :(得分:1)

document.getElementById(input).value返回一个字符串值,而document.getElementById(input)返回一个引用(一个对象)。因此,在一种情况下,只更改局部变量的值,而在另一种情况下,原始对象仍然链接到DOM值。

看一下这个问题:Javascript by reference vs. by value

答案 2 :(得分:1)

这是因为champ是一个已赋予input元素值的变量。

更改其值不会更改输入的值(,因为它不是双向绑定,您只是将值赋给它

因此,您需要直接定位value的{​​{1}}属性以更改其值


如果您尝试避免将input用于很多地方,可以将.value元素及其input缓存用于不同的用途..

value