我正在制作一個聊天系統,當用戶聊天時,它會清除輸入。該變量msg是用戶輸入的文本。let msg = document.querySelector("input").value;我以為這msg = "";可以清除輸入,但事實并非如此。但由于某種原因document.querySelector("input").value = "";起作用了。它們不是完全相同的東西嗎?
2 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
沒有不同的消息僅分配值而不分配元素。如果你說let msg = document.querySelector("input")
,msg.value="";
它會起作用,因為味精是這里的元素。在您的代碼中,msg 是值(而不是元素的值)。

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
value
輸入元素的屬性實際上是一個getter /setter,類似于innerHTML
of 元素。當您分配給屬性時,setter 會運行并設置 DOM 中元素的狀態。當您通過訪問 獲取屬性時.value
,getter 會運行并檢索 DOM 中元素的狀態。
為了設置新值,您必須運行設置器,這需要分配給屬性,例如
document.querySelector("input").value = "";
除了元素之外,在幾乎所有情況下,重新分配變量本身永遠不會產生任何副作用。無論你在做什么,msg = ''
單獨做任何事都做不到,除非msg
稍后使用。
- 2 回答
- 0 關注
- 106 瀏覽
添加回答
舉報
0/150
提交
取消