我正在解析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>
答案 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>