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

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


当前回答

你可以像这样创建一个jquery插件:

jQuery.fn.removeInlineCss = function (properties) {
  if (properties == null) return this.removeAttr('style')
  properties = properties.split(/\s+/)
  return this.each(function () {
    for (var i = 0; i < properties.length; i++)
      this.style.removeProperty(properties[i])
  })
}

使用

$(".foo").removeInlineCss(); //remove all inline styles
$(".foo").removeInlineCss("display"); //remove one inline style
$(".foo").removeInlineCss("color font-size font-weight"); //remove several inline styles

其他回答

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

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

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

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

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

<input id="element" style="">
$('div[style*=block]').removeAttr('style');

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

#myelement 
{
    display: none !important;
}

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

$("[style*=block]").hide();

将插件更改为不再应用该样式。这比随后删除样式要好得多。