解析feed url错误

时间:2012-10-27 05:18:20

标签: javascript jquery xml xml-parsing

我正在解析rss feed并显示它,但它只显示一条记录。我正在使用以下javascript。请让我知道如何在一个div中显示所有记录?

  <script type="text/javascript">
$(document).ready(function () {
  $.get("http://www.footballfriendsonline.com/blogs/rss.xml", function (data) {
  $(data).find('item').each(function(i){
   var title = $(this).find('title').text();
    var container=$(this).find('description').text();
     var img_url = $('img',container).attr('src');
     var url=$(this).find('link').text();

   var result='<li><a href="'+url+'" target="_blank"><span>'+title+'</span><span><img src="'+img_url+'" width="154" height="115"></span></li>';
 $("#new_widget").html(result);
  });
   });
  });
   </script>
   <div id="new_widget"></div>

3 个答案:

答案 0 :(得分:1)

使用append代替html

html清除以前的div html,这就是为什么你会得到最后一个提要

像这样

$("#new_widget").append(result);

而不是

$("#new_widget").html(result);

答案 1 :(得分:0)

你似乎是通过在$ .each循环中调用它来覆盖你的html ...你需要在循环外调用它..

$("#new_widget").html(result);

试试这段代码

$(document).ready(function() {
    $.get("http://www.footballfriendsonline.com/blogs/rss.xml", function(data) {
        var result = '';
        $(data).find('item').each(function(i) {
            var title = $(this).find('title').text();
            var container = $(this).find('description').text();
            var img_url = $('img', container).attr('src');
            var url = $(this).find('link').text();

            result += '<li><a href="' + url + '" target="_blank"><span>' + title + '</span><span><img src="' + img_url + '" width="154" height="115"></span></li>';

        });
        $("#new_widget").html(result);
    });
});​

答案 2 :(得分:0)

您的脚本存在两个问题。首先,每个循环结果都会覆盖前一个循环结果。其次,你将li元素附加到div,而你应该将它们附加到ol或ul元素。

例如:

<script type="text/javascript">
var result="";
$(document).ready(function () {
$.get("http://www.footballfriendsonline.com/blogs/rss.xml", function (data) {
$(data).find('item').each(function(i){
...
result+='<li><a href="'+url+'" target="_blank"><span>'+title+'</span><span><img src="'+img_url+'" width="154" height="115"></span></li>';
});
$("#new_widget").html(result);
});
});
</script>
<ul id="new_widget"></ul>