[解決済み] 配列が空か存在するかをチェックする
2022-03-21 15:47:29
質問
初めてページをロードするとき、画像が
image_array
で、最後の画像を読み込む。
そうでない場合は、プレビューボタンを無効にし、新しい画像ボタンを押すようにユーザーに警告し、画像を置くために空の配列を作成します。
問題は
image_array
の中に
else
が常時発射されます。配列が存在する場合、それを上書きするだけですが、アラートは動作しません。
if(image_array.length > 0)
$('#images').append('<img src="'+image_array[image_array.length-1]+'" class="images" id="1" />');
else{
$('#prev_image').attr('disabled', 'true');
$('#next_image').attr('disabled', 'true');
alert('Please get new image');
var image_array = [];
}
アップデイト htmlを読み込む前は、こんな感じです。
<?php if(count($images) != 0): ?>
<script type="text/javascript">
<?php echo "image_array = ".json_encode($images);?>
</script>
<?php endif; ?>
解決方法は?
if (typeof image_array !== 'undefined' && image_array.length > 0) {
// the array is defined and has at least one element
}
あなたの問題は、暗黙のグローバル変数と変数のホイストが混在しているために起こっている可能性があります。必ず
var
変数を宣言するときは必ず
<?php echo "var image_array = ".json_encode($images);?>
// add var ^^^ here
そして、その変数を後で誤って再宣言することがないようにします。
else {
...
image_array = []; // no var here
}
関連
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
jQueryのコピーオブジェクトの説明
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] 配列が空であるか、存在しないかを確認する方法は?[重複している]