我有一個以上的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