(这是在Chrome扩展中使用内容脚本)
我需要覆盖一些被网页标记为!important
的CSS样式属性。这可行吗?
例如,如果我想去掉被标记为important的边框:
$(".someclass").css('border','none'); //does not work
(这是在Chrome扩展中使用内容脚本)
我需要覆盖一些被网页标记为!important
的CSS样式属性。这可行吗?
例如,如果我想去掉被标记为important的边框:
$(".someclass").css('border','none'); //does not work
给你:
$( '.someclass' ).each(function () {
this.style.setProperty( 'border', 'none', 'important' );
});
实时演示:http://jsfiddle.net/Gtr54/
元素的style
对象的.setProperty
方法允许您传递第三个参数,该参数表示优先级。因此,您可以使用自己的!important值替换已有的!important值。据我所知,使用jQuery无法设置!important优先级,因此您的唯一选择是使用内置的.setProperty
方法。
$('#container).style
不起作用,可以使用 $('#container)[0].style
。 - yarustyle
属性只能在 DOM 元素本身上使用,而不能在 jQuery 对象上使用。 - Šime Vidas你也可以这样做:
$(".someclass").css("cssText", "border: none !important;");
这应该会有所帮助。
$(".someclass").attr("style","border:none!important");
更新,以避免覆盖所有样式:
var existingStyles = $(".someclass").attr("style");
$(".someclass").attr("style", existingStyles+"border:none!important");
$("someclass").addClass("test");
<style>
.test{
border:none !important;
}
</style>
还有另一种方式
$("#m_divList tbody").find("tr[data-uid=" + row.uid + "]").find('td').css("cssText", "color: red !important;");
css("cssText", "color: red !important;");
css("cssText", "color: red !important;");
可以用于在JavaScript中设置CSS样式。其中,"cssText"是要设置的CSS属性,"color: red !important;"是要设置的CSS值。这个函数可以让你在不改变其他CSS属性的情况下,只修改一个特定的CSS属性。<style>
div.woocommerce-variation-add-to-cart-disabled {
display: none ! important;
}
</style>
<div class="woocommerce-variation-add-to-cart variations_button woocommerce-variation-add-to-cart-disabled">
<script>
jQuery(document).ready(function() {
jQuery('.woocommerce-variation-add-to-cart').attr('style', 'display: block !important;');
});
</script>
</div>