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

如何实现点击按钮时执行指定JS代码而非刷新页面?

实现点击按钮切换骰子图片并更新结果的方案

原HTML代码中按钮点击会触发页面刷新,现在要改成点击按钮时执行指定的骰子逻辑,无需刷新页面,具体操作步骤如下:

  • 修改按钮点击事件
    把按钮的onclick="window.location.reload()"替换为调用自定义函数,比如onclick="rollDice()",避免页面刷新。

  • 修复目标JS代码的语法错误
    原JS代码里存在一处语法问题:document.querySelectorAll('img'[0] 缺少闭合引号和括号,需修正为document.querySelectorAll('img')[0],确保DOM选择器能正常工作。

  • 封装逻辑并引入JS代码
    将修复后的JS逻辑封装成函数,放在HTML的<script>标签中(建议放在<body>末尾,确保DOM元素加载完成后再执行)。

完整代码示例

<h1>Refresh Me</h1>
<div>
  <button onclick="rollDice()">
    Let's Find Out
  </button>
</div>
<!-- 页面需包含两个用于显示骰子的img标签 -->
<img src="images/dice1.png" alt="Dice 1">
<img src="images/dice1.png" alt="Dice 2">

<script>
function rollDice() {
  var randomNumber1 = Math.floor(Math.random() * 6) + 1;
  var randomDiceImage = "dice" + randomNumber1 + ".png";
  var randomImageSource = "images/" + randomDiceImage;
  document.querySelectorAll('img')[0].setAttribute("src", randomImageSource);

  var randomNumber2 = Math.floor(Math.random() * 6) + 1;
  var randomDiceImage2 = "dice" + randomNumber2 + ".png";
  var randomImageSource2 = "images/" + randomDiceImage2;
  document.querySelectorAll("img")[1].setAttribute("src", randomImageSource2);

  if (randomNumber1 > randomNumber2) {
    document.querySelector("h1").innerText = "Kirsty Makes Tea";
  } else if (randomNumber1 < randomNumber2) {
    document.querySelector("h1").innerText = "Danny Makes Tea";
  } else {
    document.querySelector("h1").innerText = "It's a draw";
  }
}
</script>

关键说明

  • 移除页面刷新逻辑后,点击按钮会直接执行骰子生成逻辑,实现无刷新更新页面内容
  • 修正语法错误后,能正确选中页面中的两个图片元素并更新其src属性,切换骰子图片
  • 函数封装后,逻辑更清晰,按钮点击时直接触发对应操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:35:07