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

如何实现最小值标红、数值升高后恢复黑色并在左侧结果栏展示

解决最小值标注问题:恢复黑色+左侧结果栏显示

完整实现代码

HTML

<div class="container">
  <div class="result-panel">
    <div class="result-item" id="result1">Value 1: <span></span></div>
    <div class="result-item" id="result2">Value 2: <span></span></div>
    <div class="result-item" id="result3">Value 3: <span></span></div>
  </div>
  <form class="input-form">
    <label for="value1">Value 1:</label><br>
    <input type="number" id="value1" name="value1" oninput="updateResults()"><br>
    <br>
    <label for="value2">Value 2:</label><br>
    <input type="number" id="value2" name="value2" oninput="updateResults()"><br>
    <br>
    <label for="value3">Value 3:</label><br>
    <input type="number" id="value3" name="value3" oninput="updateResults()"><br>
  </form>
</div>

CSS

.container {
  display: flex;
  gap: 20px;
}

.result-panel {
  width: 200px;
  padding: 10px;
  border: 1px solid #eee;
}

.result-item {
  margin: 10px 0;
  color: black;
}

.result-item.lowest {
  color: red;
  font-weight: bold;
}

.input-form {
  flex: 1;
}

JavaScript

function updateResults() {
  // 获取输入和结果元素
  const inputs = [
    document.getElementById('value1'),
    document.getElementById('value2'),
    document.getElementById('value3')
  ];
  const results = [
    document.getElementById('result1'),
    document.getElementById('result2'),
    document.getElementById('result3')
  ];

  // 收集有效数值(处理空输入的情况)
  const values = inputs.map(input => {
    const num = parseInt(input.value);
    return isNaN(num) ? Infinity : num; // 空输入视为无穷大,不参与最小值判断
  });

  // 找到最小值
  const lowestValue = Math.min(...values);

  // 遍历更新结果并标记最小值
  results.forEach((result, index) => {
    // 更新结果显示文本
    const valueSpan = result.querySelector('span');
    valueSpan.textContent = inputs[index].value || '-';

    // 先移除所有lowest类,确保非最小值元素恢复黑色
    result.classList.remove('lowest');
    // 如果当前值是最小值且不为空,添加lowest类
    if (values[index] === lowestValue && !isNaN(values[index])) {
      result.classList.add('lowest');
    }
  });
}

关键修复与改进说明

1. 解决“无法恢复黑色”的问题

原代码仅给新最小值添加样式,未移除旧元素的标记类。现在每次执行函数时,先对所有结果项调用classList.remove('lowest'),再重新判断添加,确保非最小值元素样式被重置。

2. 实现左侧结果栏标注

  • 新增.result-panel容器,与输入表单通过Flex布局横向排列,实现左侧显示结果的需求。
  • 结果项与输入一一对应,单独展示数值并标记最小值,不影响输入框本身的样式。

3. 处理空输入边界情况

当输入框为空时,将其数值视为Infinity(不会被判定为最小值),同时结果显示为-,避免空值干扰逻辑判断。

4. 代码优化

用数组存储DOM元素,简化遍历逻辑;函数名改为updateResults(),更贴合当前“更新结果+标记最小值”的功能定位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:45:30