[解決済み] jqueryでJsonデータを$.eachでループさせる
2022-04-25 02:01:24
質問
dataという変数に以下のようなJSONが返されています。
これが返されるjsonです...
[
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "jjjjjjj"}
]
で、$.eachを使ってコレクションをループさせようとしているのですが、アラートが未定義と表示される問題に遭遇しています。様々な構文を試しましたが、解決できません。
私が使用しているJQueryは
$.each(data, function(i, item) {
alert(item.PageName);
});
どなたか正しい方向を教えてください。
EDIT これは、私がデータを取得するために使用しているコードです。
$.getJSON('/Cms/GetPages/123', null, function(data) {
fillSelect(data);
});
そして、これはコールバック時に呼び出される関数です。
function fillSelect(data) {
alert(data);
$.each(data, function(i, item) {
alert(item.PageName);
});
}
EDIT 2 ドキュメントによると、私が持っているように動作するはずなのですが、そうなっていないのです。fiddlerによると、ヘッダーは以下のように表示されます。
Content-Type: application/json; charset=utf-8
で、JSONは上記の通りです。私はクロームを使用していますが、何か違いがありますか?IEとFFでテストしてみます...。
編集3
を使用して、$.get を生成します。
"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10056,\r\n \"PageName\": \"fdgdfgdfg\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10052,\r\n \"PageName\": \"hjkhjk\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10059,\r\n \"PageName\": \"jjjjjjj\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10057,\r\n \"PageName\": \"qqqqq\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10054,\r\n \"PageName\": \"qwqw\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n }\r\n]"
解決方法は?
var data = [
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "jjjjjjj"}
];
$.each(data, function(i, item) {
alert(data[i].PageName);
});
$.each(data, function(i, item) {
alert(item.PageName);
});
のようなものでない限り、この2つのオプションはうまく機能します。
var data.result = [
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "jjjjjjj"}
];
$.each(data.result, function(i, item) {
alert(data.result[i].PageName);
});
EDITです。
これで試してみて、どのような結果になったかを説明します。
$.get('/Cms/GetPages/123', function(data) {
alert(data);
});
FOR EDIT 3:
これは問題を修正しますが、 "eval" を使用するアイデアではなく、 '/Cms/GetPages/123' でどのように応答しているかを確認する必要があります。
$.get('/Cms/GetPages/123', function(data) {
$.each(eval(data.replace(/[\r\n]/, "")), function(i, item) {
alert(item.PageName);
});
});
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] jQueryでフォームフィールドをクリアする
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryです。簡単なオーバーレイを作成するにはどうすればよいですか?
-
[解決済み] クラスメソッド内の "this "をタイプスクリプトで記述する
-
[解決済み] チェックボックスのチェック/アンチェックは、jqueryを使用していますか?重複
-
[解決済み] jQueryでオブジェクトに登録されたイベントハンドラを検索する
-
[解決済み] 動的に生成された要素でクリックイベントが動作しない [duplicate]
-
[解決済み] jQueryを使用してテキストボックスの値を取得するには?
-
[解決済み] jQueryの複数要素の同一クリックイベント
-
[解決済み] jQuery セレクタ。Id Ends With?
-
[解決済み] セレクトボックスの選択項目を設定する
-
[解決済み] jQuery .onとhoverの使い分けは可能ですか?