清除输入文本失败

问题描述 投票:0回答:2

我正在创建一个聊天系统,当用户聊天时,它将清除输入。变量msg是用户键入的文本。

let msg = document.querySelector("input").value;

我以为msg = "";可以清除输入,但没有。但是由于某些原因,document.querySelector("input").value = "";起作用了。他们不是完全一样吗?

javascript html input
2个回答
1
投票

不同的味精只分配值而不分配元素。如果u表示let msg = document.querySelector("input")msg.value="";,它将起作用,因为msg是此处的元素。在您的代码中,味精是值(不是元素的值)。


0
投票

输入元素的value属性实际上是getter / setter,类似于元素的innerHTML。分配给属性时,设置器将运行并设置DOM中元素的状态。通过访问.value获得属性时,getter会运行并检索DOM中元素的状态。

为了设置新值,您必须让设置器运行,这需要分配给属性,例如

document.querySelector("input").value = "";

除了元素,重新分配变量本身在几乎所有情况下都不会有任何副作用。无论您在做什么,除非稍后使用msg = '',否则msg alone不会做任何事情。

© www.soinside.com 2019 - 2024. All rights reserved.