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

如何使用JS为游戏升级表格添加预格式化按钮并压缩空白?

如何将预格式化升级按钮添加到游戏升级表格并压缩空白

嘿,我来帮你搞定这个游戏升级表格的问题!要把那些预写好的升级按钮添加到你的空表格里,同时压缩HTML空白,其实很简单,分几步来就行:

1. 先理清楚你的基础结构

你的初始表格是这样的:

<table id='upgradeTable'> 
  <tr> 
    <td> </td> 
  </tr>
</table>

我们可以选择往现有单元格里添加按钮,或者给每个按钮单独建一行(后者更符合表格布局逻辑,推荐使用)。

2. 准备你的升级按钮代码

假设你有多个预写好的升级按钮,比如:

<button id="mastersDegreeUpgButton" class="upgradeButton" onclick="buyMastersDegree()">
  Master's Degree<br>
  Cost: <span id="mastersDegreeCost">100</span> coins<br>
  Effect: +5 coins/sec
</button>

<button id="phdUpgButton" class="upgradeButton" onclick="buyPhD()">
  PhD<br>
  Cost: <span id="phdCost">500</span> coins<br>
  Effect: +20 coins/sec
</button>

3. 用JS实现添加和空白压缩

下面是完整的JS代码,我会逐行解释:

// 第一步:获取你的升级表格元素
const upgradeTable = document.getElementById('upgradeTable');

// 第二步:把所有升级按钮的HTML存到数组里(方便批量处理)
const rawUpgradeButtons = [
  `
  <button id="mastersDegreeUpgButton" class="upgradeButton" onclick="buyMastersDegree()">
    Master's Degree<br>
    Cost: <span id="mastersDegreeCost">100</span> coins<br>
    Effect: +5 coins/sec
  </button>
  `,
  `
  <button id="phdUpgButton" class="upgradeButton" onclick="buyPhD()">
    PhD<br>
    Cost: <span id="phdCost">500</span> coins<br>
    Effect: +20 coins/sec
  </button>
  `
];

// 第三步:压缩每个按钮HTML里的多余空白
const cleanedButtons = rawUpgradeButtons.map(buttonHtml => {
  // 把换行、制表符、多个连续空格都换成单个空格,再去掉首尾空白
  return buttonHtml.replace(/\s+/g, ' ').trim();
});

// 第四步:把处理好的按钮添加到表格里(每行一个按钮的方式)
cleanedButtons.forEach(buttonHtml => {
  // 创建新的表格行和单元格
  const newRow = document.createElement('tr');
  const newCell = document.createElement('td');
  
  // 把压缩后的按钮HTML插入单元格
  newCell.innerHTML = buttonHtml;
  
  // 把单元格加到行里,行加到表格里
  newRow.appendChild(newCell);
  upgradeTable.appendChild(newRow);
});

关键细节说明:

  • 空白压缩:用replace(/\s+/g, ' ')可以把所有连续的空白字符(包括换行、空格、制表符)替换成单个空格,再用trim()去掉首尾的空白,这样HTML会变得紧凑,不会因为多余空白导致布局错乱。
  • 批量处理:把按钮放在数组里,用map和forEach可以轻松处理多个升级按钮,后续加新升级只需要往数组里加新的HTML块就行。
  • 表格布局:用createElement创建新的行和单元格,每个按钮占一行,符合表格的结构逻辑,也方便后续样式调整。

可选优化:如果想往现有单元格里添加按钮

如果你不想新增行,而是把所有按钮塞进初始的那个单元格里,可以把第四步换成:

// 获取初始表格里的第一个单元格
const initialCell = upgradeTable.querySelector('td');

// 把每个按钮用div包裹(方便控制间距),然后添加到单元格
cleanedButtons.forEach(buttonHtml => {
  const buttonWrapper = document.createElement('div');
  buttonWrapper.className = 'upgrade-item'; // 加个类方便写CSS样式
  buttonWrapper.innerHTML = buttonHtml;
  initialCell.appendChild(buttonWrapper);
});

然后可以加一点CSS来控制按钮间距:

.upgrade-item {
  margin: 8px 0;
}

这样你的升级按钮就会整齐地出现在表格里,HTML也没有多余的空白啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:06