为了账号安全,请及时绑定邮箱和手机立即绑定

清除输入文本失败

清除输入文本失败

慕斯709654 2023-10-30 20:29:18
我正在制作一个聊天系统,当用户聊天时,它会清除输入。该变量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 是值(而不是元素的值)。



查看完整回答
反对 回复 2023-10-30
?
慕村9548890

TA贡献1884条经验 获得超4个赞

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

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

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

除了元素之外,在几乎所有情况下,重新分配变量本身永远不会产生任何副作用。无论你在做什么,msg = '' 单独做任何事都做不到,除非msg稍后使用。


查看完整回答
反对 回复 2023-10-30
  • 2 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信