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

Javascript 事件侦听器在单击按钮时更改段落文本不起作用?

Javascript 事件侦听器在单击按钮时更改段落文本不起作用?

呼如林 2023-09-07 16:05:29
当我单击按钮时,文本<p>不会改变。警报消息显示输出和文本变量正确。但内部文本仍然<p>没有改变。这是 HTML:<input type="text" id="msg"><br><button onclick="Message()">Submit</button><br><h2>Last Message:</h2><p class="msg">Message</p>这是JS:function Message(){    var text = document.getElementById("msg").value;    var output = document.getElementsByClassName("msg")[0].innerHTML;        output = text;}
查看完整描述

5 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

你们非常接近。


删除innerHTML来自var output = document.getElementsByClassName("msg")[0].innerHTML;


并在此处添加:


output.innerHTML = text;


所以它会看起来像这样。


<input type="text" id="msg"><br>

<button onclick="Message()">Submit</button><br>

<h2>Last Message:</h2>

<p class="msg">Message</p>


<script>

    function Message(){

    var text = document.getElementById("msg").value;

    var output = document.getElementsByClassName("msg")[0];

    

    output.innerHTML = text;

}

</script>


查看完整回答
反对 回复 2023-09-07
?
HUWWW

TA贡献1874条经验 获得超12个赞

function Message(){

    var text = document.getElementById("msg").value;

    document.getElementsByClassName("msg").innerHTML = text;

}


查看完整回答
反对 回复 2023-09-07
?
HUX布斯

TA贡献1876条经验 获得超6个赞

您必须将消息直接设置到innerHTMLDOM 节点的属性上。固定示例:


function Message() {

    var text = document.getElementById("msg").value;

    document.getElementsByClassName("msg")[0].innerHTML = text;

}

<input type="text" id="msg"><br>

<button onclick="Message()">Submit</button><br>

<h2>Last Message:</h2>

<p class="msg">Message</p>


查看完整回答
反对 回复 2023-09-07
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您将变量定义output为 的值,document.getElementsByClassName("msg")[0].innerHTML然后将 的值更改output为 的值text

javascript 中的基元是按值传递的,而不是按引用传递的。

改变var output = document.getElementsByClassName("msg")[0].innerHTML;

document.getElementsByClassName("msg")[0].innerHTML = text


查看完整回答
反对 回复 2023-09-07
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

如果你说这样的话:

var output = document.getElementsByClassName("msg")[0].innerHTML;

输出的值只是某种字符串或类似的值。

然后,当您更改该值时,您只需更改字符串的值,而不更改元素。

你想做的是这样的:

var output = document.getElementsByClassName("msg")[0];
output.innerHtml=text;


查看完整回答
反对 回复 2023-09-07
  • 5 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

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