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

JavaScript能否根据元素display属性条件添加CSS类?

可以实现,你原本的逻辑是对的,但写法存在几处错误需要修正:

  • 直接访问$invoiceTable.display无法获取元素的display属性:jQuery封装的DOM对象不能直接读取原生style属性,需要用.css()方法读取样式,或转成原生DOM元素操作
  • 三元表达式中的=是赋值运算符,判断相等需要用===严格等于运算符
  • block是字符串值,需要用引号包裹,否则会被识别为未定义的变量触发报错

jQuery 实现写法(你当前用的addClass属于jQuery语法)

// $.css('display') 可以直接获取元素最终生效的display属性,无需是行内设置的样式
$invoiceTable.addClass($invoiceTable.css('display') === 'block' ? 'firstClass' : 'secondClass');

如果要避免元素同时存在两个目标类,建议先移除旧类再添加新类,逻辑更稳妥:

$invoiceTable
  .removeClass('firstClass secondClass')
  .addClass($invoiceTable.css('display') === 'block' ? 'firstClass' : 'secondClass');

原生JavaScript实现写法

const invoiceTable = document.querySelector('替换为你的元素选择器');
// getComputedStyle 可以读取元素最终生效的所有样式
const displayValue = window.getComputedStyle(invoiceTable).display;
invoiceTable.classList.add(displayValue === 'block' ? 'firstClass' : 'secondClass');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:18:05