删除从jQuery UI创建的内联样式

时间:2016-06-09 12:41:50

标签: jquery css jquery-ui

在一个页面上,我正在使用jQuery UI自动完成功能,它会创建相当恼人的内联样式,例如将生成的ul设置为width:window.width。这弄乱了我的风格,至少在我的口味下,完全没用。

除了“!important”之外,是否有任何优雅的方式摆脱这些内联样式?

编辑: 我建立了一点jsfiddle for my problem。 正如您在键入字符时所看到的那样,ul被设置为具有完整的窗口宽度,这是内联应用的。我甚至尝试了width: initial!important关于那个不起作用的ul。 但是,我在小提琴中想通了,当我加载默认的jQuery UI主题时,它看起来很好。 但是在主题滚轮中没有选择天气,或者你不希望你的uls有完整的窗口宽度。

3 个答案:

答案 0 :(得分:2)

只需删除样式属性,然后重新添加(如果需要它为空)

function reset(this)
{
  $(this).removeAttr('style');
  $(this).attr('style','');
}

答案 1 :(得分:1)

不幸的是没有

内联样式具有最高优先级,具有内联样式的元素将忽略在css文件中声明的任何匹配样式。

如果你只想用css来做,那么唯一的选择就是用!important定义css来覆盖它。

或使用JS解决方案。

$('element').removeAttr('style');
  

但我会说使用css解决方案是最好的。

答案 2 :(得分:0)

您还可以使用以下脚本将您自己的css设置为默认的内联样式

<script>
$(document).ready(function(){       
        $("Your-class").css("any-proprty", "value");        
});
</script>