0

ここで jQuery フィード スクリプトを使用していますhttp://camagu.github.io/jquery-feeds/demos/ : 以下は、HTML リスト内のリンクのリストから RSS フィードへのリンクをプルし、これらはフィード関数に渡され、ページの div に表示されます。

私の質問は、ページ itsel (リンクのリスト) のコンテンツからフィード関数に渡す URL の配列を動的に作成したい (私が行った) ことですが、それらを一度に 1 つずつ渡す代わりに、listoflinks[0]、配列全体を listoflinks に渡したい。指定された配列サイズではなく、任意の数のリンクで機能するようにこれを変更するにはどうすればよいですか。現在、各リンクは $listoflinks[0]、$listoflinks[1]、$listoflinks[2] などでフィード関数に渡されます。

<!DOCTYPE html>
<head>
<!-- Include jQuery -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!-- Load moment.js, used to format dates, totally optional -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/1.6.2/moment.min.js" charset="utf-8"></script>


<!-- Load jQuery Feeds -->
<script src="js/jquery.feeds.min.js" charset="utf-8"></script>
<script type="text/javascript">

// A $( document ).ready() block.
$(document).ready(function() {
console.log( "ready!" );

var listoflinks = [];
$(".field-name-field-news ul li a").each(function() { listoflinks.push("http:" + $(this).attr("href")) });

 //console.log(listoflinks[0]);


$('.feed').feeds({

    feeds : {
//  uniquename: "https://www.domain.com/rss",
  option0: listoflinks[0],
  option1 : listoflinks[1],
  option2 : listoflinks[2],
  option3 : listoflinks[3],
},
    preprocess : function(feed) {
        // Using moment.js to diplay dates as time ago
        this.publishedDate = moment(this.publishedDate).fromNow();
    },
    entryTemplate : 'entryTmpl',
//  onComplete : function(entries) {
//      $(this).find('a').attr('target', '_blank');
//  }
});
});
</script>

</head>

<body>


<script type="text/html" id="entryTmpl">
<article class="<!=source!> entry">
    <p>
        <a class="link" href="<!=feedLink!>" title="<!=feedDescription!>">    <!=feedTitle!></a>
        <span class="publishedDate"><!=publishedDate!></span>
    </p>
    <p class="author"><!=author!></p>
    <div class="content"><!=content!></div>
<div class="mediagroup">mediaGroup: <!=mediaGroup!></div>
<div class="categories">categories: <!=categories!></div>
<div class="feedauthor">feedAuthor<!=feedAuthor!></div>
</article>
</script>

<div class="field field-name-field-news field-type-link-field field-label-hidden">
<div class="field-items">
      <div class="field-item even"><div class="item-list">
<ul><li class="first"><a href="//www.filmschoolrejects.com/feed">Filmmaking Tips | Film School Rejects</a></li>
<li><a href="//www.filmmakingstuff.com/feed/">Filmmaking Stuff | For Independent Filmmakers</a></li>
<li><a href="//www.reddit.com/r/Filmmakers/.rss">Filmmakers - Reddit</a></li>
<li><a href="//feeds.feedburner.com/povdocs">For Filmmakers: Documentary Filmmaking Resources from POV - PBS</a></li>
<li><a href="//filmmakermagazine.com/category/filmmaking/feed/">Filmmaking | Filmmaker Magazine</a></li>
<li><a href="//cheapfilmmaking.com/feed">Cheap Filmmaking</a></li>
<li><a href="//www.filmmakingreview.com/feed/">Filmmaking Review</a></li>
<li><a href="//www.filmindependent.org/feed/">Artist Development | Film Independent</a></li>


<li class="last"><a href="//www.allaboutindiefilmmaking.com/feeds/posts/default">All About Indie Filmmaking</a></li>

</ul></div></div>
  </div>
</div>
  </div>

<div id="feed" class="feed">
Feed content will go in here.
</div>
</body>
</html>
4

1 に答える 1

2

空のオブジェクトを作成することをお勧めします

var listoflinks = {};

次に、この行を置き換えます

$(".field-name-field-news ul li a").each(function() { listoflinks.push("http:" + $(this).attr("href")) });

次のものを使用して、オブジェクトにアイテムを追加します

    $(".field-name-field-news ul li a").each(function(index) { 
      listoflinks['option'+index] = "http:" + $(this).attr("href"); 
   });

4 つの項目を feeds() メソッドに渡す代わりに、先ほど作成したオブジェクトを渡します。

$('.feed').feeds( {
   feeds: listoflinks, 
  // your function (didn't modify this)
  preprocess: function(feed) {}
 });
于 2013-10-21T06:35:08.837 に答える