更新:虽然以下解决方案有效,但有一种更简单的方法。见下文。
这就是我想出来的,我希望这对你或其他任何人都有用:$('#element').attr('style',function(i,style){
returnstyle&&style.replace(/display[^;]+;?/g,'');});
这将删除该内联样式。
我不确定这是你想要的。你想要覆盖它,正如已经指出的那样,它很容易完成$('#element').css('display', 'inline')。
我正在寻找的是完全删除内联样式的解决方案。我需要这个插件我正在编写,我必须暂时设置一些内联CSS值,但希望以后删除它们;我希望样式表能够取回控制权。我可以通过存储它的所有原始值然后将它们放回内联来实现,但这个解决方案对我来说感觉更清洁。
这是插件格式:(function($){
$.fn.removeStyle=function(style)
{
varsearch=newRegExp(style+'[^;]+;?','g');
returnthis.each(function()
{
$(this).attr('style',function(i,style)
{
returnstyle&&style.replace(search,'');
});
});
};}(jQuery));
如果您在脚本之前的页面中包含此插件,则可以直接调用$('#element').removeStyle('display');
那应该是诀窍。
更新:我现在意识到这一切都是徒劳的。您只需将其设置为空白即可:$('#element').css('display','');
它将自动为您删除。
以下是文档的引用:将样式属性的值设置为空字符串 - 例如$('#mydiv').css('color', '')- 如果已经直接应用了元素,则从元素中删除该属性,无论是在HTML样式属性中,还是通过jQuery.css()方法,还是通过样式属性的直接DOM操作。但是,它不会删除样式表或
我不认为jQuery在这里有任何魔力;似乎style对象本身就是这样做的。