2009-09-02 18 views
0

入力に複数のCSSが適用されていました。私はCSSのデフォルトを無効にしたいが、他のものは無効にしたい。私は削除しようとした:jQueryを使用してselectからCSSを削除します。

$j('#teste').css("max-width", ""); 

$j('#teste').removeAttr("max-width"); 

これらの方法を、すべてのCSSを削除します。どのようにjQueryでこれを行うことができますか?

+1

removeAttrはCSSのためではない..ですそれはタグの属性のためです。 http://docs.jquery.com/Attributes/removeAttr – Aziz

+4

私は問題があなたのCSSにあり、jQueryではないと信じています。 – rogeriopvl

答えて

2

CSSクラスを使用してスタイルを制御するために追加/削除します。

$('#id').addClass('foo'); 

$('#id').removeClass('foo'); 
+0

私もそれを試しましたが、私はどのように期待して動作しません。 – Allice

+0

あなたはどういう意味ですか?それは要素からクラスを削除しませんでしたか?たぶんあなたはより多くのコードを投稿し、あなたの問題を精緻化することができます。 – redsquare

2

デフォルト後に適用し、その後速やかに除去する必要がある「カスタム」スタイルのためのユニークなクラスとスタイルシートを持っている場合$ .toggleClassは()最高動作する可能性があります。

$('selector').toggleClass('foo'); 

これはfooクラスが存在しない場合は追加し、fooクラスがない場合は削除します。あなたのスタイリングのすべてがインラインである場合は、あなたがremoveAttrメソッドを使用することができます)(jQuery toggleClass documentation

を参照してください。(他の人がすでに述べたように)あなたはスタイルシートを介して適用されるスタイルを削除することはできません

$('selector').removeAttr('style'); 
1

。ただし、スタイリングをオーバーライドすることはできます。

$('#teste').css("max-width", "999999px"); 

または可能性:

$('#teste').css("max-width", "auto"); 

ていることの最大幅はスタイルシートを介して適用されている場合たとえば、あなたが値を変更するか、「自動」に設定することで、それを上書きすることができるはずです最高の賭けはおそらくあなたのCSSを修正することであり、おそらくクラスを切り替えることによってスタイリングを切り替えることであると、私は他の投稿に同意しました。

3

これは、私が以前に$(...)。css()で設定したインラインCSS属性を削除する、私たちのプロジェクト用に書いた簡単な拡張機能です。それは 'style'属性のみを変更します。つまり、クラスを通してスタイルが設定されている場合は、クラス全体を削除するか、スタイルをオーバーライドする必要があります。

あなたは$(...)として使用します。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(';')); 
    } 
    }); 
}; 
7

私はあなたが世界最大幅のセットを持っていて、#testeのためにそれを上書きしたいと仮定していますか?いずれにせよ、これはあなたが必要と何をすべき:他の人が言及している

$j('#teste').css("max-width", "none"); 

ように、これはストレートCSSで行うことができます。

#teste { 
    max-width: none; 
} 
+0

これは正解です。ありがとうございます。 –

関連する問題