• JavaScript
  • css
  • javascript
  • programming

『JavaScript』style.displayで値を取得できない原因と取得方法

『JavaScript』style.displayで値を取得できない原因と取得方法

先日、display:block or none でif文の判定をしようとstyle.displayで値を取得しようとしたところ、””しか返って来なかったのでいろいろ調べてみた。

style=”display:〇〇”しか取得できない

HTMLのインラインに記載されるstyle=”display:〇〇”しか取得が出来ません。

自分の場合は、classで指定したdisplay:noneを取得しようとしていた為、style.displayで取得する事ができませんでした。

ダメなパターン

<p class="hoge"> ほげ </p>
.hoge {
  display: none;
}

大丈夫なパターン

<p style="display: none"> ほげ </p>

インラインで確認できます。

もしくは、JavaScriptなどのscriptで付与している場合

const display = document.getElementsByTagName( "p" );
function() {
  display.style.display ="none";
};
jQuery(function () {
  jQuery("p").hidden();
});

こちらも結果的に、HTMLのアウトラインから確認する事が出来ます。

対処方法

scriptで制御するものはscript

cssで制御するものはcss

上記のセオリーに従って、style.displayを使用して判定をしたい場合はあらかじめ

document.getElementsByTagName( "p" ).style.display = "none"

としてあげることで、style=display:noneが設定される。

そうすることで、style.displayで判定ができる様になります。