• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のRSSにそれぞれClass名を追加したい.)

複数のRSSにそれぞれClass名を追加したい

このQ&Aのポイント
  • Google AJAX Feed APIを使用して、ホームページに複数のRSSを新しい順に入れ子で表示しています。しかし、各RSSにクラス名を追加したいのです。
  • 試行錯誤しましたが、うまくいきませんでした。以下にコードを示します。希望の機能としては、読み込んだ順にフェードインで表示し、非同期で読み込みたいです。
  • 利用している関数についても説明します。initialize関数では、複数のRSSフィードを追加します。feedAdd関数では、指定したRSSのURLからエントリーを取得し、配列に追加します。feedOutput関数では、エントリーを指定した数だけ表示します。asort関数は配列を指定したキーでソートします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

コードにコメントがないので、読むコストが高くて回答が付きにくいかも・・・。 できたら、コメント付けたコードを補足に書いてもらえませんか?

toggle
質問者

補足

遅くなりました。 コメントはこんな感じでよろしいでしょうか? ---------------------------------------------------------- google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { /* url */ feedAdd("URL_facebook", 2); feedAdd("URL_twitter", 1); } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); // URL feed.setNumEntries(20); // 記事数 feed.load(function(result) { // 情報の出力 if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { // 個々の情報を出力 entryArray.push(result.feed.entries[i]); var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*10000 ) + ( (date.getMonth() + 1)*100 ) + date.getDate(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } }else{ alert(result.error.code + ":" + result.error.message); } if(boolNum==1){ feedOutput("feed", 100); } }); } function feedOutput(feedId, listNum){ var container = document.getElementById('rss'); // 出力先のID名 entryArray = asort(entryArray, "sortDate"); if(listNum > entryNum){ listNum = entryNum; } for (var i = 0; i < listNum; i++) { // 出力の内容 var entry = entryArray[i]; var date = new Date(entry.publishedDate); var eTitle = entry.title; var eCont = entry.contentSnippet.substring(0, 100); var eLink = entry.link; var wrap = document.createElement("li"); // 画像 var eimg = ""; var imgCheck = entry.content.match(/(src="http:){1}[\S_-]+((\.jpg)|(\.JPG))"/); if(imgCheck){ eimg += '<img ' + imgCheck[0] + '\>'; } // html wrap.innerHTML = eimg + '<span>' + date.getFullYear() + '年' + (date.getMonth() + 1 ) + '月' + date.getDate() + '日<\/span><br\>' + eCont + '...<br\><a href="' + eLink + '" target="_blank">投稿へ移動<\/a>'; container.appendChild(wrap); } } function asort(myArray, key){ return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } ); } google.setOnLoadCallback(initialize); ---------------------------------------------------------- if文で色々やってみたのですがダメでした。 よろしくお願いします。

専門家に質問してみよう