我很难应用这样的风格!重要的我尝试过:
$("#elem").css("width", "100px !important");
这没有任何作用;不应用任何宽度样式。有没有类似jQuery的方法来应用这样的样式而不必覆盖cssText(这意味着我需要先解析它,等等)?
编辑:我应该补充一下,我有一个带有!我试图用!重要的样式内联,因此使用.width()等不会起作用,因为它会被我的外部重写!重要的风格。
此外,将覆盖上一个值的值是计算出来的,因此我不能简单地创建另一个外部样式。
我很难应用这样的风格!重要的我尝试过:
$("#elem").css("width", "100px !important");
这没有任何作用;不应用任何宽度样式。有没有类似jQuery的方法来应用这样的样式而不必覆盖cssText(这意味着我需要先解析它,等等)?
编辑:我应该补充一下,我有一个带有!我试图用!重要的样式内联,因此使用.width()等不会起作用,因为它会被我的外部重写!重要的风格。
此外,将覆盖上一个值的值是计算出来的,因此我不能简单地创建另一个外部样式。
当前回答
最安全的解决方法是添加一个类,然后在CSS中执行魔术:-),addClass()和removeClass()应该完成这项工作。
其他回答
当“事件”时,我尝试更改菜单项的文本颜色时遇到了同样的问题。当我遇到同样的问题时,我发现的最佳方法是:
第一步:在CSS中创建一个新的类,例如:
.colorw{ color: white !important;}
最后一步:使用addClass方法应用该类,如下所示:
$('.menu-item>a').addClass('colorw');
问题已解决。
如果它不那么相关,并且由于您正在处理一个元素#elem,那么您可以将其id更改为其他元素,并根据您的意愿对其进行样式设置。。。
$('#elem').attr('id', 'cheaterId');
在CSS中:
#cheaterId { width: 100px;}
这是我遇到这个问题后所做的。。。
var origStyleContent = jQuery('#logo-example').attr('style');
jQuery('#logo-example').attr('style', origStyleContent + ';width:150px !important');
不要使用css()函数,请尝试addClass()函数:
<script>
$(document).ready(function() {
$("#example").addClass("exampleClass");
});
</script>
<style>
.exampleClass{
width:100% !important;
height:100% !important;
}
</style>
我们需要首先删除以前的样式。我使用正则表达式删除它。以下是更改颜色的示例:
var SetCssColorImportant = function (jDom, color) {
var style = jDom.attr('style');
style = style.replace(/color: .* !important;/g, '');
jDom.css('cssText', 'color: ' + color + ' !important;' + style); }