質問: $(this); $(id).append(''+el.text()+''+el.filter('description').html()); console.log(el.text()); console.log(el.filter('description').html()); }); }).fail(function (data) { $(id).html('Failed to load RSS. ' + JSON.stringify(data)); }); } ```
回答: データも無く、「うまくいかない」だけだと状況がわからないんですが、 コードを見て思ったのは ``` $(dom).find('item').each(function () { var el = $(this); $(id).html(''+el.text()+''); $(id).html(el.find('description').html()); }); ``` このループで、つねに `$(id)`の内容はすべて書き換わりますのでそのせいじゃないかと思います。 たとえばループが一回でも`$(id).html(''+el.text()+'');`は次の行ですべて書き換えられてしまいます。 最後の要素しか出ていない様ならたぶんそれです。 ``` $(dom).find('item').each(function () { var el = $(this); $(id).html(''+el.text()+''); console.log(el.text()); $(id).html(el.find('description').html()); console.log(el.find('description').html()); }); ``` などしてみて、コンソールに期待しているものが出力されるかまずは確認してみるといいでしょう。 あと、問題とは関係ないと思いますが、以下の2行って冗長(これで戻るなら元々 dataは jsonではないのか)な気がするんですけど、こういう書き方をするものなんでしょうか。 ``` var json = JSON.stringify(data); var arr = JSON.parse(json); ``` **追記** コメントも受けて。正直なところRSSのフォーマットなりサンプルが無いと想像ばかりになるので難しいですが その他気になるのは > > $(id).html(dom); > > > で、HTMLの様に表示されるということでしたら、 `var out_html = $($.parseHTML(dom));` ではなくて ``` $(dom).filter('item').each(function () { ``` でも、良いような。(すでに試していてout_htmlが問題なさそうなら気にしないでください) あとfilterではなくfindを使う場面な気がします。