我有一个以上的CSS应用于输入,一个默认和其他自定义。我想禁用CSS默认,但不是其他人。我试图删除:使用jQuery从选择中删除CSS
$j('#teste').css("max-width", "");
和
$j('#teste').removeAttr("max-width");
这些方式,删除所有的CSS。我如何使用jQuery来做到这一点?
我有一个以上的CSS应用于输入,一个默认和其他自定义。我想禁用CSS默认,但不是其他人。我试图删除:使用jQuery从选择中删除CSS
$j('#teste').css("max-width", "");
和
$j('#teste').removeAttr("max-width");
这些方式,删除所有的CSS。我如何使用jQuery来做到这一点?
$ .toggleClass()可以工作最好的,如果你有对于需要快速的默认应用后,然后去掉了“定制”的风格独特的类样式表。
$('selector').toggleClass('foo');
如果它不存在,将添加foo类,如果元素没有foo类,则删除它。见jQuery toggleClass documentation
如果你所有的造型是内联(),您可以使用removeAttr方法:
$('selector').removeAttr('style');
你不能(因为别人已经说过),删除通过样式表应用的造型。但是,您可以覆盖样式。例如,如果通过一个样式表应用最大宽度,你应该能够通过改变值或将其设置为“自动”覆盖它:
$('#teste').css("max-width", "999999px");
或可能:
$('#teste').css("max-width", "auto");
这是说,我同意其他帖子,最好的赌注可能只是解决你的CSS和可能切换样式切换一个类。
下面是我为我们的项目编写的一个简单扩展函数,它删除以前由$(...)。css()设置的内联CSS属性。它只改变'样式'属性 - 如果通过类设置样式,则需要删除整个类或重写样式。
您将它用作$(...)。removeCss('color','font-weight');
$.fn.removeCss = function() {
var removedCss = $.makeArray(arguments);
return this.each(function() {
var e$ = $(this);
var style = e$.attr('style');
if (typeof style !== 'string') return;
style = $.trim(style);
var styles = style.split(/;+/);
var sl = styles.length;
for (var l = removedCss.length, i = 0; i < l; i++) {
var r = removedCss[i];
if (!r) continue;
for (var j = 0; j < sl;) {
var sp = $.trim(styles[j]);
if (!sp || (sp.indexOf(r) === 0 && $.trim(sp.substring(r.length)).indexOf(':') === 0)) {
styles.splice(j, 1);
sl--;
} else {
j++;
}
}
}
if (styles.length === 0) {
e$.removeAttr('style');
} else {
e$.attr('style', styles.join(';'));
}
});
};
我假设你有一个全球最大宽度设置,并要覆盖它#teste
?无论哪种方式,这应该做你需要什么:
$j('#teste').css("max-width", "none");
正如其他人提到了这一点可以直CSS来实现:
#teste {
max-width: none;
}
这是正确的答案,谢谢。 – 2015-12-24 14:16:20
removeAttr不是CSS ..它是标签的属性。 http://docs.jquery.com/Attributes/removeAttr – Aziz 2009-09-02 20:57:46
我相信问题出在你的CSS而不是jQuery中。 – rogeriopvl 2009-09-02 20:58:54