- 締切済み
getJsonを利用してinvalid label
jQuery1.50です。 var aId={aa:'002',bb:'005',cc:'014'}; var key=0; var apiKey="http://~~?callback=?&result=2&f_id="; $(function(){$.each(aId,function(key,val){ var jsonUrl=apiKey+aId[key]; $.getJSON(jsonUrl,function(data){ $("#rArea .block .iink").before('<h3><img src="img/home/report_'+key+'_title.gif" width="400" height="10" /></h3><dl id="repo'+aId[key]+'">'); $.each(data.entries,function(i,items){ $("#repo"+aId[key]).append('<dt><img src="'+this.image_url+'" width="85" height="50" /></dt><dd><p class="reportTtl"><a href="'+this.url+'" target="_blank">'+this.title+'</a></p><p class="date">'+this.pubdate+'</p></dd>'); });});});}); 上記を実行したところ、invalid labelエラーが発生しました。 evalでかこめ、という対処は調べてわかったのですが、 var jsonUrl=eval("("+apiKey+aId[key]+")");だとか、試したのですが、今度はシンタックスエラーを起こして直りません。(上記の場合、「missing ) in parenthetical」) どこを修正したらいいのか分からなくなってしまったのでご教授頂ければ幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Chaire
- ベストアンサー率60% (79/130)
> evalでかこめ、という対処 全然関係ないので、削除して下さい。 おそらく JSON データの受信段階でエラーが出ています。不正な JSON か、文字化けしているか、JSON ではない何かを受け取っているか、です。URL を直接叩いてみるなどして確認して下さい。 ついでながら、 > <img src="'+this.image_url+' > <a href="'+this.url+'" target="_blank">'+this.title+'</a> URL の中に "&" が入っていたり、title の中に "<" が入っていたりを避けるため、必ずエスケープして下さい。というか、こういう書き方を避け、なるべく DOM API を通すようにして下さい(正しく使えば自動的にエスケープされます)。
お礼
すいません自己解決しました。