私はjQueryでCSSを変更しています、そして私は入力値に基づいて追加しているスタイルを削除したいです。
if(color != '000000') $("body").css("background-color", color); else // remove style ?
これどうやってするの?カラーピッカーを使用して色が選択されるたびに(つまり、マウスがカラーホイール上を移動するとき)、上の行が実行されることに注意してください。
2番目の注意:css("background-color", "none")
では、CSSファイルからデフォルトのスタイル設定が削除されるため、これを行うことはできません。 jQueryによって追加されたbackground-color
インラインスタイルを削除したいだけです。
プロパティを空の文字列に変更すると、その仕事をしているように見えます。
$.css("background-color", "");
受け入れられた答え は動作するが、私のテストではDOM上に空のstyle
属性を残す大したことはありませんが、これですべてが削除されます。
removeAttr( 'style' );
これは、すべての動的スタイル設定を削除してスタイルシートスタイル設定に戻ることを前提としています。
JQueryを使ってCSSプロパティを削除する方法はいくつかあります。
1. CSSプロパティをデフォルト値(初期値)に設定
.css("background-color", "transparent")
MDNのCSSプロパティの 初期値を参照してください 。ここでのデフォルト値はtransparent
です。いくつかのCSSプロパティに inherit
を使用して、その親から属性を継承することもできます。 CSS3/CSS4では、 initial
、 revert
、または unset
も使用できますが、これらのキーワードではブラウザのサポートが制限される場合があります。
2. CSSプロパティを削除する
空の文字列はCSSプロパティを削除します。
.css("background-color","")
しかし、 jQuery .css()ドキュメント で指定されているように、これはプロパティを削除しますが、 background を含む特定のCSS短縮プロパティに関してIE8との互換性の問題があります。
スタイルプロパティの値を空の文字列、例えば $( '#mydiv')。css( 'color'、 '')に設定すると、そのプロパティが要素から削除されます。 HTMLのstyle 属性、jQueryの.css()メソッド、またはstyleプロパティの直接DOM 操作を通じて、すでに直接適用されています。ただし、スタイルシートまたは要素内のCSSルールで適用されているスタイルは削除されません。警告: 1つの注目すべき例外は、IE 8以下の場合、 borderやbackgroundなどの省略形のプロパティを削除するとその要素からそのスタイルが完全に削除されることですスタイルシートや要素に何が設定されているかに関わらず 。
3.要素のスタイル全体を削除する
.removeAttr("style")
純粋なJavaScriptのスタイルを知らせるために、純粋なJavaScriptでスタイル属性を削除する方法があります。
var bodyStyle = document.body.style;
if (bodyStyle.removeAttribute)
bodyStyle.removeAttribute('background-color');
else
bodyStyle.removeProperty('background-color');
これらのjQuery関数はどちらも機能するはずです。
$("#element").removeAttr("style");
$("#element").removeAttr("background-color")
これは完全なタグを削除します。
$("body").removeAttr("style");
これを試して:
$('#divID').css({"background":"none"});// remove existing
$('#divID').css({"background":"#bada55"});// add new color here.
ありがとう
次のようなものはどうですか。
var myCss = $(element).attr('css');
myCss = myCss.replace('background-color: '+$(element).css('background-color')+';', '');
if(myCss == '') {
$(element).removeAttr('css');
} else {
$(element).attr('css', myCss);
}
ただ使用する:
$('.tag-class').removeAttr('style');
または
$('#tag-id').removeAttr('style');
私のプラグインを使う:
$.fn.removeCss=function(all){
if(all===true){
$(this).removeAttr('class');
}
return $(this).removeAttr('style')
}
あなたの場合は、次のように使用してください。
$(<mySelector>).removeCss();
または
$(<mySelector>).removeCss(false);
そのクラスで定義されているCSSも削除したい場合は、
$(<mySelector>).removeCss(true);
あなたがCSSスタイルを使うならば、あなたは使うことができます:
$("#element").css("background-color","none");
それから次のものに置き換えます。
$("#element").css("background-color", color);
CSSスタイルを使用せず、HTML要素に属性がある場合は、次のようにします。
$("#element").attr("style.background-color",color);
let el = document.querySelector(element)
let styles = el.getAttribute('style')
el.setAttribute('style', styles.replace('width: 100%', ''))
CSSクラスを削除したいスタイルを作りませんか?これで.removeClass()
を使えます。 これにより、次のものを使用する可能性も開けます。.toggleClass()
(存在する場合はクラスを削除し、存在しない場合は追加します。)
クラスを追加/削除しても、レイアウトの問題に対処するときに変更/トラブルシューティングを行うのに混乱が少なくなります(特定のスタイルが消えた理由を見つけようとするのとは対照的に)。
これも動作します!
$elem.attr('style','');
これを試して
$(".ClassName").css('color','');
Or
$("#Idname").css('color','');
シンプルはWeb開発において安価です。特定のスタイルを削除するときは、空の文字列を使用することをお勧めします。
$(element).style.attr = ' ';
2018年
そのためのネイティブAPIがあります
element.style.removeProperty(propery)
これは他のソリューションよりも複雑ですが、シナリオの柔軟性が向上する可能性があります。
1)適用/削除したいスタイルを選択的に分離(カプセル化)するクラス定義を作成します。それは空にすることができます(そしてこの場合、おそらくそうなるはずです):
.myColor {}
2) http://jsfiddle.net/kdp5V/167/に基づいて、このコードを使用してください から この回答 / - gilly3 :
function changeCSSRule(styleSelector,property,value) {
for (var ssIdx = 0; ssIdx < document.styleSheets.length; ssIdx++) {
var ss = document.styleSheets[ssIdx];
var rules = ss.cssRules || ss.rules;
if(rules){
for (var ruleIdx = 0; ruleIdx < rules.length; ruleIdx++) {
var rule = rules[ruleIdx];
if (rule.selectorText == styleSelector) {
if(typeof value == 'undefined' || !value){
rule.style.removeProperty(property);
} else {
rule.style.setProperty(property,value);
}
return; // stops at FIRST occurrence of this styleSelector
}
}
}
}
}
使用例: http://jsfiddle.net/qvkwhtow/ /
警告:
このようにスタイリングを分離することは、CSSを操作することではなくても、CSSのすべてのことです。 jQueryがDOMの要素を操作し、それを実行するためにCSSセレクターを使用するのは、CSSルールを操作することだけではありません。