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

JavaScript随机姓名生成器按钮重复点击不更新问题求助

问题解决:每次点击按钮生成新随机姓名

你的问题核心是随机姓名只在页面加载时计算一次,后续点击按钮只是重复使用这个已生成的固定值。要实现每次点击都生成新姓名,只需把生成随机姓名的逻辑移到按钮的点击事件回调函数内部即可。

修改后的代码如下:

const girlsNamesArray = girlsNames.split(' ');
console.log(girlsNamesArray);

const boysNamesArray = boysNames.split(' ');
console.log(boysNamesArray);

const girlButton = document.querySelector('.names__button--girl');
const boyButton = document.querySelector('.names__button--boy');
const proposedName = document.querySelector('.names__idea');

girlButton.addEventListener('click', e => {
  // 每次点击时重新生成随机女名
  const randomGirl = girlsNamesArray[Math.floor(Math.random() * girlsNamesArray.length)];
  proposedName.innerText = `Nazwij córkę ${randomGirl.slice(0, -1)}`;
});

boyButton.addEventListener('click', e => {
  // 每次点击时重新生成随机男名
  const randomBoy = boysNamesArray[Math.floor(Math.random() * boysNamesArray.length)];
  proposedName.innerText = `Nazwij syna ${randomBoy.slice(0, -1)}`;
});

关键修改说明:

  • 将randomGirl和randomBoy的生成逻辑从全局作用域移到对应按钮的点击回调函数内,这样每次点击按钮都会重新执行随机数计算,得到全新的姓名。
  • 变量声明改用const(因为每次点击都会创建新的变量,无需重复赋值),更符合JavaScript的编码规范。

修改完成后,每次点击按钮都会生成并显示新的随机姓名,无需刷新页面。

内容的提问来源于stack exchange,提问作者Małgorzata Kuźmierz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:50:24