クラス名がhaveIt
の要素は1つのみです。
document.getElementsByClassName("haveIt")[0]
はまた、あなたがチェックした条件が真であることがオードで、あなたはクラスMeTest付きのdivの表示ブロックとスタイルを定義する必要があります。ですから、以下の変更を行う必要があります。
var x = document.getElementsByClassName("MeTest");
if (x[0].style.display == 'block')
{
document.getElementsByClassName("haveIt")[0].style.backgroundColor = "red";
}
#MeTest{
position: fixed;
height: 200px;
width: 200px;
background-color: #fdacc3;
}
div{
background: #4dd329;
border: 1px solid white;
height: 200px; width: 200px;
display: block;
}
.MeTest{
display: block;
}
<div class="MeTest" style="display: block;"></div>
<div class="testThis" style="float: right;"></div>
<div class="haveIt" style="position: fixed; top: 200px;"></div>
PS:私はあなたのスニペットを実行したときに見られるためには、400ピクセルから200pxのにトップの値を変更しました。私は、CSS スタイルシートでその要素を呼び出し、表示に変更すると - 私は文についての私の最初の質問には、あなたがHTML DOM内のブロックに 表示に変わっていることがわかり
更新
ブロック、それはそのように動作しません。 何が起こっているのか?要素のdisplayプロパティがスタイルシートでを課しているので、それは動作しません
、それはhtml要素のstyle属性に含まれる値ではありません。この場合、以下のスニペットのようにgetComputedStyle
メソッドを使用することができます。詳細については
var x = document.getElementsByClassName("MeTest");
var display = window.getComputedStyle(x[0],null)
.getPropertyValue("display");
if (display == 'block'){
document.getElementsByClassName("haveIt")[0].style.backgroundColor = "red";
}
#MeTest{
position: fixed;
height: 200px;
width: 200px;
background-color: #fdacc3;
}
div{
background: #4dd329;
border: 1px solid white;
height: 200px; width: 200px;
display: block;
}
.MeTest{
display: block;
}
<div class="MeTest"></div>
<div class="testThis" style="float: right;"></div>
<div class="haveIt" style="position: fixed; top: 200px;"></div>
Window.getComputedStyle
に関する[ここ]を見てください。 1
F12を押すと、少なくとも1つのエラーが表示されます。 –