(function($){
// Extend the jQuery fn namespace
$.fn.extend({
// RSS2Render
rss2render: function(options) {
// 今回使う変数たち
var self = $(this),
c = $.extend({
url: null,
number: 10
},options || {});
// URLがなければ処理を終了する
if( !c.url ) {
return false;
}
// loading文字列とRSSを一覧で表示するためのul要素を入れておく
self.append(
'<div id="loading">loading...</div>',
'<ul/>'
);
// RSSの取得
$.ajax({
// 読み込むデータはXML
dataType: 'xml',
// 読み込みデータのURL
url: c.url,
// Ajaxの通信が成功した場合
success: function(data) {
// loading文字列を消去
$('#loading', self).remove();
// RSSにitem要素がひとつもなかった場合
if( $('item', data).length<1 ) {
$('ul', self).append('<li>記事がありません。</li>');
return false;
}
// item毎に・・・
$('item', data).each(function(i) {
// 指定した数を超えた場合は終了する
if( i > (c.number - 1) ) {
return false;
}
// itemの中のlinkとtitleを抜き出してulに追加する
var item = $(this);
$('ul', self).append(
$('<li/>').append(
$('<a/>', {
href: $('link', item).text(),
text: $('title', item).text()
})
)
);
});
}
});
}
});
})(jQuery);
jQuery(function($){
$('#rss').rss2render({
url: 'feed/rss2.xml',
number: 5
});
});