Javascript事件侦听器,用于在单击按钮时更改段落文本;不行?
单击按钮时,Javascript事件侦听器,用于在单击按钮时更改段落文本;不行?,javascript,html,dom,event-listener,Javascript,Html,Dom,Event Listener,单击按钮时,文本不会更改 警报消息显示输出和文本变量正确。但是的内部文本仍然没有改变 以下是HTML: 提交 最后信息: 消息 这是JS: 函数消息(){ var text=document.getElementById(“msg”).value; var output=document.getElementsByClassName(“msg”)[0].innerHTML; 输出=文本; } 将变量输出定义为文档的值。getElementsByClassName(“msg”)[0]。inn
文本不会更改
警报消息显示输出和文本变量正确。但是
的内部文本仍然没有改变
以下是HTML:
提交
最后信息:
消息
这是JS:
函数消息(){
var text=document.getElementById(“msg”).value;
var output=document.getElementsByClassName(“msg”)[0].innerHTML;
输出=文本;
}
将变量输出定义为文档的值。getElementsByClassName(“msg”)[0]。innerHTML
然后将输出的值更改为文本的值
javascript中的原语是通过值传递的,而不是通过引用传递的
Changevar output=document.getElementsByClassName(“msg”)[0].innerHTML代码>
到document.getElementsByClassName(“msg”)[0].innerHTML=text
如果您说的是类似于:
var output = document.getElementsByClassName("msg")[0].innerHTML;
输出的值将只是某种字符串或类似的值
然后,当您更改该值时,您只更改字符串的值,而不更改元素的值
您要做的是:
var output = document.getElementsByClassName("msg")[0];
output.innerHtml=text;
您必须将消息直接设置到DOM节点的innerHTML
属性上。固定示例:
函数消息(){
var text=document.getElementById(“msg”).value;
document.getElementsByClassName(“msg”)[0].innerHTML=text;
}
提交
最后信息:
消息
你非常接近
从var output=document.getElementsByClassName(“msg”)[0]中删除innerHTML
代码>
并将其添加到此处:
output.innerHTML=文本代码>
看起来是这样的
提交
最后信息:
消息
函数消息(){
var text=document.getElementById(“msg”).value;
var output=document.getElementsByClassName(“msg”)[0];
output.innerHTML=文本;
}
function Message(){
var text = document.getElementById("msg").value;
document.getElementsByClassName("msg").innerHTML = text;
}