簡體   English   中英

為什么'this.value'有效,但e.value卻沒有?

[英]Why does 'this.value' work but e.value doesn't?

我是新來的。 我已經在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>

函數中的e應該引用觸發事件的元素。 你應該把它function (e) {alert (e.target.value); }; } function (e) {alert (e.target.value); }; }

現在, e是觸發onkeyup功能的事件,您可以訪問目標以獲取值。

http://jsfiddle.net/yAaYX/

第一個輸入不起作用的原因 - 你的e變量被覆蓋,它指向第二個輸入,當時為空。

如果刪除第二個輸入的2行,你會發現它與e.value 一起工作 e.value - 工作示例

或者只是給變量賦予不同的名稱 - e1e2 - 示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM