2017-09-28 33 views
1

これはなぜ動作しないのかわかりません。 、JavaScriptで特定のクラスを非表示にする方法

"document" is not defined.

それはどういう意味:私は、特定のクラスを非表示にしようとしています、これは私はJavascriptで持っているコードの行だけです:私はエラーを取得するいくつかの理由

document.getElementsByClassName("popular").style.display = "none";

変数ではありません。

ご協力いただきありがとうございます。

+0

は、ブラウザでこれを実行していますか? – Claies

+0

はい私はそうです。私がgetElementByIdを使用してhtmlで変更しても、動作しません。 –

+0

あなたが持っているもののスニペットを提供できますか?問題を再現してみてください。 – NewToJS

答えて

2

getElementsByClassNameメソッドは、同じクラスのすべての要素を返します。同じクラスの要素の配列とみなします。したがって、どの要素を非表示にするかを指定する必要があります。私の例では、そのようなクラスを持つ要素が1つしかないので、配列の最初の要素([0])のように選択します。あなたのコードは次のようになります。

document.getElementsByClassName("popular")[0].style.display = "none"; 
 

 
console.log('Current "display" property value is: ' + document.getElementsByClassName("popular")[0].style.display)
<div class="popular">TARGET</div>

+0

このvs querySelectorAllを使用する利点はありますか?ただ疑問に思う! – will

+1

@will、この方法でOPを使用し、私はそれを私の答えに含めました。 'querySelectorAll'と' getElementsByClassName'は少し異なりますが、私はいつも 'getElementsByClassName'を使います。相違点の詳細については、https://developer.mozilla.org/ru/docs/Web/API/Document/getElementsByClassNameおよびhttps://developer.mozilla.org/ru/docs/Webを参照してください。/API/Document/querySelectorAll –

+0

何とかハハを見落としましたが、情報に感謝します! – will

関連する問題