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

如何通过点击标题修改CSS伪元素的背景颜色?

解决点击标题修改伪元素颜色的问题

伪元素(如:before)不属于真实DOM节点,无法通过jQuery直接选中并修改它的样式。你可以通过给父元素添加/移除类的方式间接控制伪元素样式,这是处理伪元素样式动态变化的标准方案。

具体实现步骤:

  • 点击标题时,给伪元素的父容器.main__heading添加自定义类(比如.active)
  • 在CSS中定义该类下伪元素的目标样式

完整代码示例:

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="padding">
  <div class="main__heading">
    <h1 type="button" id="main">Heading Text</h1>
  </div>
</div>

CSS

.padding {
  border  : 1px solid red;
  padding : 40px;
}
#main:hover {
  cursor : pointer;
}
.main__heading:before {
  align-items      : baseline;
  background-color : green;
  content          : "";
  display          : flex;
  height           : 5px;
  left             : 0;
  top              : 0;
  width            : 70px;
}
/* 激活类对应的伪元素样式 */
.main__heading.active:before {
  background-color: red;
}

JavaScript

jQuery(function() {
  changeColor();
});

function changeColor() {
  $('#main').on("click", function() {
    // 给父元素添加激活类(如需切换颜色,改用toggleClass)
    $('.main__heading').addClass('active');
    // 若要实现点击切换红绿状态,替换为:
    // $('.main__heading').toggleClass('active');
  })
}

补充说明:

如果需要点击切换颜色(点一次变红,再点恢复绿色),将addClass替换为toggleClass即可,每次点击会切换父元素的.active类,伪元素颜色也会随之切换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:31:11