如何通过javascript覆盖内联css?

时间:2009-11-20 09:37:42

标签: javascript jquery css internet-explorer

我们可以通过javascript覆盖内联css吗? 兼容IE6

我发现这个纯粹的css解决方案但在IE中不起作用。

http://nataliejost.com/override-inline-styles-from-the-stylesheet/

http://www.sitepoint.com/blogs/2009/05/27/override-inline-css/

<div class="block">
    <span style="font-weight: bold; color: red;">Hello World</span>
</div>

我们可以使用此解决方案覆盖此内联样式

.block span[style]{
    font-weight: normal !important;
    color: #000 !important;
}

此解决方案适用于除IE6以外的所有主要浏览器。

2 个答案:

答案 0 :(得分:14)

当然你可以使用jQuery的css()方法:http://docs.jquery.com/CSS/css#namevalue

因此,例如,如果您有以下HTML:

<p style="color:red;">A colored text</p>

您可以通过在jQuery中执行以下操作来更改颜色:

$("p").css("color","blue");

它将在IE6中运行。

答案 1 :(得分:4)

!important在IE6中有效,只是你的选择器span[style]不会,因为那里不支持属性选择器。如果你能找到另一个选择你想要覆盖的跨度的选择器,那就行了。也许只有.block span就足够了?

否则,是的,如果你绝对必须,你可以从JavaScript更改它(你不能控制标记吗?):

span.style.fontWeight= 'normal';
span.style.color= 'black';