Javascript 为什么';这个.value';工作但e.value不工作';T

Javascript 为什么';这个.value';工作但e.value不工作';T,javascript,this,Javascript,This,我是新来的。我读了很多关于stackoverflow的文章,但这是我的第一个问题。希望这不是一个愚蠢的问题。我知道观众有时会很严厉,这是理所当然的 在以下代码中,当您在第一个输入框中输入文本时,警报不会显示您输入的内容。但是,在第二个框中,当您输入某个内容时,警报会显示该内容 区别在于“this.value”和“e.value”的用法 我认为它们都应该起作用,因为'e.value'引用了一个元素,我认为'this.value'也可以,但显然我遗漏了一些东西,因为它不做相同的事情 提前谢谢 <

我是新来的。我读了很多关于stackoverflow的文章,但这是我的第一个问题。希望这不是一个愚蠢的问题。我知道观众有时会很严厉,这是理所当然的

在以下代码中,当您在第一个输入框中输入文本时,警报不会显示您输入的内容。但是,在第二个框中,当您输入某个内容时,警报会显示该内容

区别在于“this.value”和“e.value”的用法

我认为它们都应该起作用,因为'e.value'引用了一个元素,我认为'this.value'也可以,但显然我遗漏了一些东西,因为它不做相同的事情

提前谢谢

<!DOCTYPE html>
<html>
<head><script>
window.onload = function () {var e;
    e = document.getElementById('eInput');
    if (!e.onkeyup) {e.onkeyup = function () {alert (e.value); }; }
    e = document.getElementById('thisInput');
    if (!e.onkeyup) {e.onkeyup = function () {alert (this.value); }; }
}
</script></head>
<body>
<input type="text" id='eInput'></input><br><br>
<input type="text" id='thisInput'></input>
</body>
</html>

window.onload=function(){var e;
e=document.getElementById('eInput');
如果(!e.onkeyup){e.onkeyup=function(){alert(e.value);};}
e=document.getElementById('thisInput');
如果(!e.onkeyup){e.onkeyup=function(){alert(this.value);};}
}



第一个输入不起作用的原因-您的
e
变量被覆盖,它指向第二个输入,此时该输入为空

如果删除第二个输入的2行,您将看到它与
e.value
-


或者只需为变量指定不同的名称-
e1
e2
-

函数中的
e
应指触发事件的元素。您应该将其更改为
函数(e){alert(e.target.value);};}

现在,
e
是触发onkeyup函数的事件,您可以访问目标以获取值


谢谢。e=元素。我没有意识到,在我将事件函数分配给eInput元素之后,e被更改会很重要。因为它是在我将事件分配给第一个元素后重新分配的。然后我只是重复使用这个变量,将一个事件分配给第二个元素。我还得多读一些,因为我不明白为什么重用e变量在这里是个问题。谢谢。这是我的新技术。我还得再研究一下。根据您的示例,它确实有效。非常感谢!