• 締切済み

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」) どこを修正したらいいのか分からなくなってしまったのでご教授頂ければ幸いです。

みんなの回答

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.1

> evalでかこめ、という対処 全然関係ないので、削除して下さい。 おそらく JSON データの受信段階でエラーが出ています。不正な JSON か、文字化けしているか、JSON ではない何かを受け取っているか、です。URL を直接叩いてみるなどして確認して下さい。 ついでながら、 > <img src="'+this.image_url+' > <a href="'+this.url+'" target="_blank">'+this.title+'</a> URL の中に "&" が入っていたり、title の中に "<" が入っていたりを避けるため、必ずエスケープして下さい。というか、こういう書き方を避け、なるべく DOM API を通すようにして下さい(正しく使えば自動的にエスケープされます)。

picicate
質問者

お礼

すいません自己解決しました。

関連するQ&A

専門家に質問してみよう