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

如何实现点击文本时将其替换为数组中的随机元素?

功能修复方案

你的代码存在两个核心问题,修改后即可实现预期效果:

  • 事件名拼写错误:DOM事件名大小写敏感,你调用addEventListener时传入的"Click"首字母大写不符合规范,需要改为全小写的"click"
  • 替换逻辑错误:当前changeWord函数会修改所有带hare类的元素文本,不符合「仅替换被点击的对应文本」的需求,你可以直接通过this关键字获取触发点击事件的当前元素,单独修改它的内容即可

修复后的完整代码如下:

<script>
// 随机词数组提到函数外,避免每次点击重复初始化
const wordList = ["Rabbit", "Snake", "Human"];
const hareElements = document.getElementsByClassName("hare");

for (let i = 0; i < hareElements.length; i++) {
  // 事件名改为小写click
  hareElements[i].addEventListener("click", changeWord);
}

function changeWord() {
  const randomWord = wordList[Math.floor(Math.random() * wordList.length)];
  // 直接修改当前被点击的元素内容
  this.innerHTML = randomWord;
}
</script>

如果你需要保留原文本的其他属性、只替换文字内容,也可以把innerHTML换成textContent,避免潜在的XSS风险。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:54:08