GetElementById 无法获取值

GetElementById can't get value

本文关键字:获取 GetElementById      更新时间:2023-09-26

>你知道为什么这样吗

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= "";
    }
}

它没有 ?

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

谢谢的

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

这是因为 is champ 是一个被分配了 input 元素值的变量。

更改

其值不会更改输入的值(因为它不是双向绑定,您只是为其分配了值

因此,您需要直接定位inputvalue属性以更改其值


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

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

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

看看这个问题:Javascript by 引用与 by value