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

如何用jQuery为未知类的指定元素添加样式属性及值?

解决方法

问题回顾

假设我有如下HTML/CSS代码:

<div .......>
<div class="....." ....>            
....foobar ....
</div>
</div>

已通过以下代码获取到包含"foobar"元素的最近父级div:

$("div:contains('foobar')").closest("div");

需要修改该父级div的font-size和line-height,且覆盖现有样式,但尝试的代码未生效:

$("div:contains('foobar')").closest("div").style.fontSize("16px !important").lineHeight("18px !important"); 

问题分析

你的代码存在两个关键错误:

  • jQuery没有.style方法,设置样式需使用.css()方法;
  • 直接传递带!important的字符串给.css()无法被正确解析,需要使用特定语法。

正确实现方式

方式一:使用jQuery的.css()方法设置!important样式

可以通过数组形式声明带!important的样式属性:

$("div:contains('foobar')").closest("div").css({
  "font-size": ["16px", "important"],
  "line-height": ["18px", "important"]
});

也可以分两次调用.css():

const targetDiv = $("div:contains('foobar')").closest("div");
targetDiv.css("font-size", "16px !important");
targetDiv.css("line-height", "18px !important");

方式二:添加自定义CSS类(推荐)

这种方式更符合前端开发的可维护性原则,优先推荐:

  1. 先定义CSS类:
.override-text-styles {
  font-size: 16px !important;
  line-height: 18px !important;
}
  1. 使用jQuery为目标元素添加类:
$("div:contains('foobar')").closest("div").addClass("override-text-styles");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:50:32