2

我正在尝试开发一个可以访问外部 XML 提要并显示结果的 JQuery 插件。这是我到目前为止所拥有的:

HTML 标头包含

<script language="javascript" src="jquery.rss.js" type="text/javascript"></script>

jQuery 就绪

<script type="text/javascript">
  $(document).ready(function() {  
    $("#rss").rss({count:6,loading_text:"loading"});
  });
</script>

插件 (jquery.rss.js)

(function($) {

    $.fn.rss = function (o) {
        var s = {
            count: 6,
            loading_text: null,
        };

        if(o) $.extend(s,o);
        return this.each (function () {
            var list = $('<ul class="rss">').appendTo(this);
            var loading = $('<p class="desc"><center><img src="loading.gif" height="19" width="18" border="0"><br>'+s.loading_text+'</center></p>');
            var items = 0;
            var url = 'http://www.example.com/feed.xml;
            if (s.loading_text) $(this).append(loading);

            $.get(url,{},function(data){
                if (s.loading_text) loading.remove();       
                $('forecastday',data).each(function(i){
                    var title = $(this).find("title").text();
                    var description = $(this).find("description").text();

                    list.append('<li>' + title + ' - ' + description + '</li>');

                    items++;
                    if(items == s.count) last;
                });
            });
        });
    }

})(jQuery);

在我尝试执行 $.get 之前,一切似乎都正常工作,此时似乎没有返回任何内容。我已经通过使用 alert() 验证了从 $.get 请求中调用了正确的 URL。

希望我离得不远,JQuery 大师可以指出我哪里出错了。在此先感谢您的帮助!

4

2 回答 2

1

查看这个 jQuery 插件:jdigiclock。它使用代理来获取和解析 XML 数据并将其提供给 jQuery 脚本。我认为,这是同一件事,你正在寻找。

于 2010-02-23T19:37:06.087 回答
1

您不能跨域执行 ajax 请求。要么开发一个服务器端代理(部署在同一主机上),将您的请求路由到 wunderground,要么寻找支持 JSONP 的 API。

另请参阅 -基于经度和纬度坐标获取天气的 API

于 2009-12-02T00:37:31.927 回答