RSS Feed显示NaN xml jquery

时间:2016-01-04 20:02:04

标签: javascript jquery xml rss nan

我使用jquery和来自有线的Feed编写简单的RSS feed。一切都很好,但由于某种原因,结果包括描述后的NaN。我无法弄清楚它想要拉什么,因为它没有包装在任何标签中,它遵循一个段落:

<p></p> NaN </div>

我无法使用css来隐藏它,我不想限制描述长度,因为有些比其他更长,设置任意字符限制可能允许它显示在更短的描述上。

xml Feed:http://www.wired.com/category/business/feed/

脚本:

(function ($) {
$.fn.FeedEk = function (opt) {
    var def = $.extend({
        FeedUrl: "http://www.wired.com/category/business/feed/",
        MaxCount: 5,
        ShowDesc: true,
        ShowPubDate: true,
        TitleLinkTarget: "_blank",


    }, opt);

    var id = $(this).attr("id");
    var i;
    $("#" + id).empty().append('<img src="loader.gif" />');
    $.ajax({
        url: "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=" + def.MaxCount + "&output=json&q=" + encodeURIComponent(def.FeedUrl) + "&hl=en&callback=?",
        dataType: "json",
        success: function (data) {
            $("#" + id).empty();
            var s = "";
            $.each(data.responseData.feed.entries, function (e, item) {
                s += '<li><div class="itemTitle"><a href="' + item.link + '" target="' + def.TitleLinkTarget + '" >' + item.title + "</a></div>";
                if (def.ShowPubDate) {
                    i = new Date(item.publishedDate);
                    s += '<div class="itemDate">' + i.toLocaleDateString() + "</div>";
                }
                if (def.ShowDesc) {                     
                    if (def.DescCharacterLimit > 0 && item.content.length > def.DescCharacterLimit) {
                        var StringStartAfterImage = item.content.indexOf('>',item.content.indexOf('< img')) + 1;
                        s += '<div class="itemContent">' + item.content.substr(0, def.DescCharacterLimit + StringStartAfterImage) + "..";
                    }
                    else {
                        s += '<div class="itemContent">' + item.content;
                    }
                    s += + "</div>";
                }
            });
            $("#" + id).append('<ul class="feedEkList">' + s + "</ul>");
        }
    });
};
})(jQuery);

$(document).ready(function() {

    $('#home-news').FeedEk({
        FeedUrl: 'http://www.wired.com/category/business/feed/',
        MaxCount: 5,
        ShowDesc: true,
        ShowPubDate: true,


    });
});

HTML:

<div class="newsCenter">
      <div class="news">
        <div id="home-news"> </div>
      </div>
    </div>

非常感谢任何帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

我通过在else语句之后删除代码并在else语句中关闭div来解决这个问题,我不需要那些没有生成的数据,所以这个解决方案适合我。