You need to enable JavaScript to run this app. 如何根据指定数值大小替换切换两个不同的div卡片设计?
优惠活动
大模型
产品
解决方案
定价
更多

如何根据指定数值大小替换切换两个不同的div卡片设计?

解决方案

方案1:控制元素显隐实现切换(最推荐)

这种方案不需要修改DOM结构,仅通过控制CSS的display属性实现切换,性能更高,逻辑也更简单,适合需要频繁切换卡片的场景。

完整实现代码

CSS(可选,用于初始化隐藏不需要的元素)

/* 初始默认两个div都隐藏,也可以根据需求设置默认显示的元素 */
#div1, #div2 {
  display: none;
}

HTML 不需要修改,沿用你现有代码即可

JS 代码

// 提前获取两个DOM元素,避免重复查询
const div1 = document.getElementById('div1');
const div2 = document.getElementById('div2');

// 数值判断逻辑
const value = data[i].value;
if (value > 20) {
  // 大于20时显示div2,隐藏div1
  div1.style.display = 'none';
  div2.style.display = 'block';
} else if (value < 20) {
  // 小于20时显示div1,隐藏div2
  div1.style.display = 'block';
  div2.style.display = 'none';
}
// 如果需要处理等于20的情况,可以自行补充else分支

方案2:DOM节点替换实现(满足替换整个div的需求)

如果你确实需要完全替换DOM节点而非控制显隐,可以使用replaceChild方法,注意要提前备份节点,避免替换后找不到原始节点无法切换回来。

实现代码

// 获取两个div的父容器,如果你把div放在其他父容器里要替换成对应的父元素选择器
const container = document.body;
const div1 = document.getElementById('div1');
const div2 = document.getElementById('div2');
// 深度克隆两个节点,用于切换时恢复原始结构
const div1Clone = div1.cloneNode(true);
const div2Clone = div2.cloneNode(true);

const value = data[i].value;
// 获取当前页面上存在的目标div
const currentActiveDiv = document.querySelector('#div1, #div2');
if (value > 20) {
  // 替换为div2
  container.replaceChild(div2Clone, currentActiveDiv);
} else if (value < 20) {
  // 替换为div1
  container.replaceChild(div1Clone, currentActiveDiv);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:06:04