(这是在Chrome扩展程序中使用内容脚本)
我需要覆盖网页标记为!important
的一些css属性。这可能吗?
例如,如果我想摆脱标记为重要的边界:
$(".someclass").css('border','none'); //does not work
答案 0 :(得分:107)
你走了:
$( '.someclass' ).each(function () {
this.style.setProperty( 'border', 'none', 'important' );
});
现场演示: http://jsfiddle.net/Gtr54/
元素.setProperty
对象的style
方法使您能够传递表示优先级的第三个参数。所以,你用你自己的重要价值来覆盖一个重要的价值。据我所知,无法使用jQuery设置!important优先级,因此您唯一的选择是内置.setProperty
方法。
答案 1 :(得分:48)
你也可以这样做:
$(".someclass").css("cssText", "border: none !important;");
答案 2 :(得分:5)
这应该有所帮助。
$(".someclass").attr("style","border:none!important");
已更新,以免覆盖所有样式:
var existingStyles = $(".someclass").attr("style");
$(".someclass").attr("style", existingStyles+"border:none!important");
答案 3 :(得分:0)
还有另一种方式
$("#m_divList tbody").find("tr[data-uid=" + row.uid + "]").find('td').css("cssText", "color: red !important;");
css(" cssText","颜色:红色!重要;");
答案 4 :(得分:0)
我们可以使用jquery添加类
$("someclass").addClass("test");
<style>
.test{
border:none !important;
}
</style>