「display: block !important;」指定された要素をjQueryで非表示にする方法
jQueryで特定の要素を非表示にしたかったのでhide()を使用したところ非表示にならなかった。どうもCSS側で当該要素が「display: block !important;」指定されており、これが原因で非表示にならないっぽい。以下に対応方法をメモ。
対応方法
ソースコード
<style> #test_div{ display: block !important; width: 300px; height: 300px; background-color: #f00; } </style> <div id="test_div">display:block !important;が効いているエリア</div> <script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script> $(function(){ //非表示にならない $(`#test_div`).hide(); //非表示になる $(`#test_div`).attr(`style`, `display: none !important`); }); </script>
所感
!important指定をさらに!important指定しており、やや無理やり感があるものの、CSS側を変更できないような場合(いただいたコーディングデータとかの場合)はこのような方法を取らざるを得ないかも。
参考サイト
https://stackoverflow.com/questions/18784593/display-none-important-need-to-override-by-using-jquery
関連記事
-
-
jQueryでiframe内の要素を呼び出し
jQueryでiframeで開いたbody内の内容が欲しかった。 ■jQuery ...
-
-
jQueryの通知メッセージ用ライブラリ「Toastr」の利用方法
あるサイトのソースコードを拝見しているとToastrというJSファイルをCDNで ...
-
-
AjaxにてHTTPリクエストメソッドをDELETE / PUTで送信する方法
あるAPIにAjaxでリクエストする際、GET / POSTではなくDELETE ...
-
-
YouTubeの埋め込み動画をjQuery&CSSでフローティングビデオ対応させる方法
以前にvideoタグで表示させた動画をjQuery&CSSでフローティン ...
-
-
jQuery UIでテキストボックスにサジェスト(入力補助)機能を実装する方法
メールアドレスを入力するためのテキストボックスに文字を入力すると「@yahoo. ...