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