You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么第二次点击按钮时,JS代码未将DOM元素内容切换为msgTwo变量的值?

错误原因

你的判断条件存在逻辑错误:你直接将DOM元素对象el和字符串变量msg做等值判断,二者属于完全不同的数据类型,判断结果永远为真,因此else分支永远不会被触发。
同时HTML中的#message元素原始文本自带前后换行和空格,直接比对会出现匹配失败的问题,需要先去除空白字符。

修正后代码

只需修改JS部分的判断逻辑即可,HTML无需改动:

let el = document.getElementById('message');
let butt = document.getElementById('clicktodo')
let msg = 'Sign up to our Newsletter for 10% off!';
let msgTwo = 'Welcome to Our Site!';

function change() {
  // 比对元素的文本内容,trim()用于去除前后空白字符
  if (el.textContent.trim() !== msg) {
    el.textContent = msg;
  } else {
    el.textContent = msgTwo;
  }
};

butt.addEventListener('click', change);

内容的提问来源于stack exchange,提问作者The Equine Gate Keeper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:06:03