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

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒有不同的消息僅分配值而不分配元素。如果你說let msg = document.querySelector("input")
,msg.value="";
它會(huì)起作用,因?yàn)槲毒沁@里的元素。在您的代碼中,msg 是值(而不是元素的值)。

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