Uncaught TypeError:未定義のプロパティ「display」を設定できません



Uncaught Typeerror Cannot Set Propertydisplayof Undefined



この問題はCSSの問題ではなく、純粋なjavascriptの問題です。

JQueryを使用している場合は、$記号があります。次のテキストを見ることができます。そうでない場合は、スキップしてください。



これは私が大物のブログを読んで学んだことです、ここにリンクがあります:
https://www.cnblogs.com/Renyi-Fan/p/9013126.html

このシンボルは、プロトタイプとDWRのJSライブラリにもあります。
これら2つのライブラリのシンボルは、関数document.getElementById()を表します。
document.getElementById()関数の効果を実現するために、JQueryは$()シンボルも試しました。



言い換えると:
$( '#myId')はネイティブJSのdocument.getElementById( 'myId')です

同様の変更には、次の一般的な方法もあります。

$('div p') // (1) $('div.container') // (2) $('div #msg') // (3) $('table a',context) // (4)
  • コードの最初の行は、すべてのタグの下にあるP要素を取得します。



  • コードの2行目は、クラスがコンテナである要素を取得します。

  • コードの3行目は、IDがmsgである要素をラベルの下に取得します。

  • コードの4行目は、コンテキストがコンテキストであるテーブル内のすべての接続要素を取得します。

    Jqueryは、この方法でDomオブジェクト内の要素を検索します。 CSSセレクターに似ています

この問題を見てください:

Uncaught TypeError:未定義のプロパティ「display」を設定できません

画像
まず第一に、cssは正しく書かれています、問題はJavascriptのgetElementsByClassName( 'xxx')にあります、

このメソッドが取得するのは、単一の要素ではなく、class = 'xxx'のすべての要素のコレクションです。

コレクションには表示属性がなく、コレクション内の要素のみに表示属性があります。 set.style.displayを実行しようとすると、当然エラーが発生します。

したがって、問題の解決策は次のようになります。コレクション内のすべての要素をトラバースしてから、display = 'none'の属性を各要素に追加します。サンプルコードは次のとおりです。

var divset=document.getElementsByClassName('el-upload-list') for (var i = 0 i

変更後は成功しました。


終わり

あなたに良いlunck