jQuery插件正在应用内联样式(display:block)。我感觉很懒,想用display:none重写它。

最好的(懒惰的)方法是什么?


当前回答

如果显示是你的样式中唯一的参数,你可以运行这个命令来删除所有的样式:

$('#element').attr('style','');

这意味着如果你的元素之前是这样的:

<input id="element" style="display: block;">

现在你的元素看起来是这样的:

<input id="element" style="">

其他回答

$("#element").css({display: "none"});

起初,我试图删除css中的内联样式,但它不起作用,新样式如display: none将被覆盖。但在JQuery中,它是这样工作的。

我有类似的问题与宽度属性。我不能从代码中删除!important,因为它在一个新模板上需要这种样式,我添加了一个Id (modalstyles)到元素中,然后我添加了以下代码到模板中:

<script type="text/javascript">
    $('#modalstyling').css('width', '');    //Removal of width !important
    $('#modalstyling').width('75%');        //Set custom width
</script>
$('div[style*=block]').removeAttr('style');

懒惰的方式(这将导致未来的设计师诅咒你的名字,并在你睡觉时谋杀你):

#myelement 
{
    display: none !important;
}

免责声明:我不提倡这种方法,但它肯定是懒惰的方式。

如果你想在一个样式属性中删除一个属性——而不仅仅是将它设置为其他属性——你可以使用removeProperty()方法:

document.getElementById('element').style.removeProperty('display');

更新: 我做了一个交互式的小提琴来玩不同的方法和他们的结果。显然,set to empty string、set to faux value和removeProperty()之间没有太大区别。它们都会导致相同的回退——要么是预先给定的CSS规则,要么是浏览器的默认值。