
jQuery入門にはかなり高度な本を選んでしまいました。
レシピを1個1個実行しながら、レシピ5.11まで来たのですが、レシピ5.11のコードが動きません。
=========以下抜粋=========
JSONデータのフォーマットは次のとおり。
{
"names": [
{
"first": "Azzie",
"last": "Zalenski",
"street": "9554 Niemann Crest",
"city": "Quinteros Divide",
"state": "VA",
"zip": "48786"
},
// このフォーマットのデータが1,000個ある
]
}
JavaScriptコードは次のとおり。
// HTML用に&、<、>がエスケープされたテキストを返す
function esc( text ) {
return text
.replace( '&', '&' )
.replace( '<', '<' )
.replace( '>', '>' );
}
$(document).ready( function() {
function fillTable( names ) {
$.each( names, function() {
$('<tr>')
.append( $('<td>').addClass('name').html(
esc(this.first) + ' ' + esc(this.last)
) )
.append( $('<td>').addClass('address').html(
esc(this.street) + '<br />' +
esc(this.city) + ', ' +
esc(this.state) + ' ' + esc(this.zip)
) )
.appendTo('#nameTable');
});
}
$.getJSON( 'names/names-1000.json', function( json ) {
fillTable( json.names );
});
});
そして、ドキュメントには次のHTMLコードが含まれている。
<table id="nameTable">
</table>
=========以上抜粋=========
JSONデータというものは実際に1000個作らずにサンプルと全く同じ(コメント含む)ものを用意しました。
jQueryモジュールは1章で学習したようにファイルの先頭で、
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/ …
と記述して読み込んでいます。
本によると、これで1000件の住所録が表示されるはずなのですが、
しかしchromeでは何も表示されませんし、エラーメッセージも何も表示されません。
これを正しく動かすために修正すべき個所を提示していただきたく、質問に参りました。
No.1ベストアンサー
- 回答日時:
jsonはコメント文があったりすると読み込めないみたいです。
参考:
https://macoblog.com/js_read_json/
仮に、jsonを以下のようにしてみたら、
もしかしたらうまくいくかもしれません。
{
"names": [
{
"first": "Azzie1",
"last": "Zalenski1",
"street": "9554 Niemann Crest1",
"city": "Quinteros Divide1",
"state": "VA1",
"zip": "487861"
},
{
"first": "Azzie2",
"last": "Zalenski2",
"street": "9554 Niemann Crest2",
"city": "Quinteros Divide2",
"state": "VA2",
"zip": "487862"
}
]
}
初心者丸出しの質問をしてしまいました。
ご指摘のとおりでした。
なぜ、こんなにも初歩的な質問をしてしまったのか。
いいわけ、というか備忘録のためにも、ここに記載させてください。
信じてほしいのですが、私も当初はコメントや、最後のコンマが原因なのではと思い、これを消して試したりしていました。
もうお気づきかもしれませんが、なんとChromeは普通に再読み込みしただけではjsonを読みに行かないようです。
なので、どんなにjsonを直そうが、ずっと動かなかったのです。
常識ですか。さいですか^^
No.2
- 回答日時:
こんばんは
>エラーメッセージも何も表示されません。
consoleにエラーが表示されていませんか??
簡単なテストをしてみましたが、jsonデータが正しくできていれば、ご提示のスクリプトで動作します。
原因として、ありそうなものは・・・
・配列の最後にも「,」が付けられている。
・ローカル環境で実行している。
(ajaxの場合、サーバ環境でないとcross originに引っかかる)
あたりではないかと思いますけれど…
※ なお、ご質問には関係ありませんけれど、利用なさっているjQueryが大分旧いので、もう少し最近のバージョンでも良いのではないかとも思います。
https://developers.google.com/speed/libraries
普段はChromeのconsoleがエラーを教えてくれるのですが、今回はconsoleには何も表示されませんでした。
jsonまでは見てくれないのでしょうかね。。。
原因はjsonの初歩的な記述ミスでした。
No.1さんへのお礼も見ていただけるとうれしいです。
当方オライリー信者のため、今回このような古い本を買ってしまいました。
現在オライリーから出版されているjQueryの書籍は、これ一択のようです^^
jQueryの古さは私も気になっていたところです。
まあ、この本のサンプルコードを実行する分には、このままのバージョンでもいいかな~と思っています。
最新版を使用するメリット、旧版を使う重大なデメリットがあれば教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
教えて!gooグレードポイントがdポイントに変わります!
dアカウント連携を行っていただくと、グレードに応じて「dポイント」が進呈されるようになります。
-
まとめサイトはc言語でも作れますか?
C言語・C++・C#
-
cssで 〇〇あいうえお (〇〇は空白) としたい場合、padding-left: 30px;かma
HTML・CSS
-
ローカル開発環境について
PHP
-
4
画像のようにホームページに広告を付けて、検索上位にさせたいんですけど、どこでお願いしたら良いでしょう
SEO
-
5
webデザイナー現場の方に質問です。 音読して実際コードを打って見ってブラウザーを表示すると実感が沸
HTML・CSS
-
6
VSCODE[Python]の設定について
その他(プログラミング・Web制作)
-
7
webデザインの勉強をしているのですが、お問い合わせフォームにjquery validation P
JavaScript
-
8
半加算器について
その他(プログラミング・Web制作)
-
9
webサイトを作れるようになるには最低でもどれくらいの期間プログラミングの勉強が必要ですか?
その他(プログラミング・Web制作)
-
10
プログラミングの授業が早いです
C言語・C++・C#
-
11
プログラムを習得している方へ、プログラミングが全然出来ない、講義について行けない
その他(プログラミング・Web制作)
-
12
ホームページの作成について
HTML・CSS
-
13
しょっちゅうフリーズ、または強制終了するパソコンの原因を突き止めたい
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
saved from url=(0013)abou
-
5
HTMLでリアルタイムグラフを作...
-
6
DirectXとOpenGLはどちらが動作...
-
7
php ob_flushが全く動作しない
-
8
【Ajax】改行を含めたデータを...
-
9
非道式6進カウンタと非同期式10...
-
10
HtmlからPythonコードを実行す...
-
11
AjaxでDBと連携した動的リスト...
-
12
非同期関数とノンブロッキング...
-
13
F5などで更新すると、画像やCSS...
-
14
PHPのリアルタイム表示について
-
15
ローカルネットワーク内での502...
-
16
PHPで一定時間が経過すると処理...
-
17
imm(日本語入力)が上手く行きま...
-
18
HTMLファイルにテキストファイ...
-
19
ajaxでhtmlを返して画面に描画…...
-
20
ハローワークインターネットサ...
おすすめ情報
公式facebook
公式twitter