一回も披露したことのない豆知識

javascriptで外部cssの特定のクラスを削除する方法はありますか?
jqueryは使えません。

A 回答 (2件)

No1です。



>element.removeAttribute();
>を使うのでしょうか?
element.removeAttribute()だとclass属性をまるごと削除します。
ある指定のclassだけを削除(追加)するような場合は、Element.classListから、remove(またはadd)を利用してください。
https://developer.mozilla.org/ja/docs/Web/API/El …
    • good
    • 1
この回答へのお礼

ありがとうございました!
解決できました!

お礼日時:2019/12/20 23:21

こんにちは



>外部cssの特定のクラスを削除する方法はありますか?
設定されているスタイルシートを調べて、特定のクラスに関数る記述があれば削除ってことでしょうか?
やったことはありませんが、できるはずと思います。
とは言え、多少面倒ですよ。

document.styleSheets
で文書に設定されている、スタイルシートを取得可能です。
https://developer.mozilla.org/ja/docs/Web/API/St …

その中の個々のスタイルシートを取得して、さらにその中の個々のスタイル設定を調べることになります。
https://developer.mozilla.org/ja/docs/Web/API/CS …
https://developer.mozilla.org/ja/docs/Web/API/CS …

CSSRule.cssTextが、「h1,h2 { font-size: 16pt }」 などといったCSS設定のテキストに当たりますので、それぞれに目的のクラスが含まれているかをチェックして・・・という処理を全シート分繰り返すという手順になると思います。
複数セレクタに対して定義されているときは「,」も含めて削除するとか、単独の指定になっている場合はル―ルごと削除するとかの判断も必要になることでしょう。
対象クラスの子孫要素に対するルールがあったっ場合にどのように扱うのかは、ご質問文からではよくわかりませんね。

事前に探すものが決まっていたり、操作内容がはっきりしているのなら、スタイルシートの設定等をあらかじめ見つけやすい順序に制御しておくなどで、比較的簡単に見つけられるようにしておけるかも知れません。

とは言え・・・
なぜ直接CSSを弄らなければならないのかがわかりませんし、上記のような面倒な処理を行うのに比べたら、DOMのクラスを外しちゃう方が遥かに簡単だと思いますけれど…?
    • good
    • 1
この回答へのお礼

どのccsのどのクラスを外したいかは判明しています。

すみません初心者なものでDOMの外し方って
element.removeAttribute();
を使うのでしょうか?

ご教授いただけれ幸いです。

お礼日時:2019/12/19 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!