1. ホーム
  2. javascript

[解決済み] 未定義のプロパティ 'display' を設定できません。

2022-02-05 10:07:39

質問

メニューの表示/非表示を切り替えるスクリプトを書いているのですが、問題が発生します。

    function displayMenu() {
//var classMenu = event.target.className;
//classMenu += 'Menu';
    //document.getElementsByClassName(classMenu).style.display = 'block';
document.getElementsByClassName('btn-pageMenu').style.display = 'block';
    }

コメントで最終的にやりたいことを書いていますが、static varでやってもうまくいきません。 CSSでは:

    fieldset.toolsbox ul.btn-pageMenu {display:none;}

私もこんな風に試しています。

    .btn-pageMenu {display:none;}

もう成功しません。どなたかご提案いただけないでしょうか?私はJSを勉強していますが、他の類似のスクリプトと比較すると、エラーを見つけることができません。

ご協力ありがとうございます :)

解決方法は?

document.getElementsByClassName('btn-pageMenu') を配信しています。 ノードリスト . を使うべきでしょう。 document.getElementsByClassName('btn-pageMenu')[0].style.display (変更したいのがそのリストの最初の要素である場合。

を変更したい場合 style.display をすべてのノードでループさせます。

var elems = document.getElementsByClassName('btn-pageMenu');
for (var i=0;i<elems.length;i+=1){
  elems[i].style.display = 'block';
}

を完成させる:jqueryを使用する場合は、次のように簡単です。

​$('.btn-pageMenu').css('display'​​​​​​​​​​​​​​​​​​​​​​​​​​​,'block');​​​​​​