javascript - 如何使用 .css() 应用 !important?

我在应用 !important 样式时遇到问题。我试过了:

$("#elem").css("width", "100px !important");

什么都不做;没有应用任何宽度样式。有没有一种 jQuery 风格的方式来应用这种样式而不必覆盖 cssText (这意味着我需要先解析它,等等)?

编辑:我应该补充一点,我有一个带有 !important 样式的样式表,我试图用 !important 样式覆盖它内联,因此使用 .width() 等不起作用,因为它被我的外部 !important 样式覆盖。

另外,将覆盖先前值的值是计算出来的,所以我不能简单地创建另一个外部样式。

最佳答案

问题是由于jQuery不理解!important属性导致的,因此无法应用规则。

您也许可以解决这个问题,并通过引用它来应用规则,通过 addClass():

.importantRule { width: 100px !important; }

$('#elem').addClass('importantRule');

或者通过使用 attr():

$('#elem').attr('style', 'width: 100px !important');

不过,后一种方法会取消任何先前设置的内联样式规则。所以要小心使用。

当然,@Nick Craver 的方法更容易/更明智。

上述,attr() 方法稍作修改以保留原始 style 字符串/属性,并按照 falko 的建议进行修改在评论中:

$('#elem').attr('style', function(i,s) { return (s || '') + 'width: 100px !important;' });

https://stackoverflow.com/questions/2655925/

相关文章:

html - 如何在 pre 标签中换行?

html - 为什么不在 HTML 中使用表格进行布局?

html - 默认情况下如何选择单选按钮?

javascript - 将 HTML Canvas 捕获为 gif/jpg/png/pdf?

html - HTML中id和name属性的区别

html - 如何将我的 div 放在其容器的底部?

html - 为输入类型 ="file"按钮设置样式

html - 从 IFrame 中删除边框

html - 有没有办法改变输入类型 ="date"格式?

html - Zalgo 文本如何工作?