Simplepie rss缺少缩略图,使用jQuery的替代解决方案



我在从simplepie rss中提取缩略图时遇到了问题。我在SO上到处找,包括这里,但似乎找不到一个有效的好解决方案。特别是因为我想要所有提要及其线程上的缩略图。

也就是说,我决定用jquery在rss内容div中搜索img源,将该源字符串保存到一个变量中,并使用该值填充我专门为缩略图设置的另一个div。几乎所有的帖子都有一个图片,所以应该做得很好。

我做到了,但有一部分我无法理解。rss通过for循环与php一起输入到页面中。为了测试这个应用程序,我用这个一次引入2个提要

$feed->set_item_limit(2);

这意味着下面的代码(php)运行两次,给我两个提要。

[PHP+HTML]

<div id="mainContW">
<h1>Feed Content below</h1>
<br><br>
  <?php 
    //loop through all the content
    foreach($feed->get_items() as $feedItems){
  ?>
  <div class="feedContBox">
    <h2><a href="<?php echo $feedItems->get_permalink(); ?>" target="new"><?php echo $feedItems->get_title(); ?></a></h2>
    <br>
    <div class="feedThm"><img src="images/default-thm.jpg" alt=""></div>
    <br>
    <?php //echo $feedItems->get_description(); ?>
    <div class="feedContActual"><?php echo $feedItems->get_content(); ?></div>
    <br>
    <?php echo $feedItems->get_date(); ?>
    <br><br>
  </div><!-- feedContBox ender -->
  <?php
      }
    } //this ends the if/else above towards the top
  ?>
</div><!-- mainContentW ender -->

我想从上面的html.php中获取图像源,将它们存储在一个变量中,这样我就可以将其附加到另一个div中,以创建自己的缩略图。

我使用它:[jQuery]

function replaceThm(){
    //this is a div to hold my own thumbnails
    var feedThm = $('.feedThm img');

    //this finds the img tag src on the content div from the feed
    var imgThm = $('.feedContActual').find("img").attr("src");
    feedThm.attr('src', imgThm);
}
replaceThm();

我遇到的问题是,尽管它确实有效,但问题是,由于上面的HTML/PHP代码是循环的,它所做的是,它使用jQ创建的新拇指,并使用第一篇文章中的图像将其放在所有帖子上。它从第一篇帖子中获取图像,并将其作为拇指添加到所有帖子中。

例如,假设我们有最初的两个帖子。

POST 1
   POST 1 IMAGE

POST 2
   POST 2 iMAGE

它的作用是:

NEW THUMB FROM THIS DIV IMG SOURCE equals TO POST 1 IMAGE (GOOD)
POST 1
   POST 1 IMAGE
NEW THUMB FROM THIS DIV IMG SOURCE equals TO POST 1 IMAGE (**NOT GOOD**)
POST 2
   POST 2 iMAGE

我想让它做的是:

NEW THUMB FROM THIS DIV IMG SOURCE equals TO POST 1 IMAGE (GOOD)
POST 1
   POST 1 IMAGE
NEW THUMB FROM THIS DIV IMG SOURCE equals TO POST 2 IMAGE (GOOD)
POST 2
   POST 2 iMAGE

我理解它为什么这么做,但我不明白如何像php一样使jQuery代码循环。我已经尝试将"script"块插入thumbdiv中,以便它在循环进行时迭代,如下所示:

<div class="feedThm">
  <script type="text/javascript">
    replaceThm();
  </script>
  <img src="images/default-thm.jpg" alt="">

</div>

但无济于事。

我还把script标记放在了页眉上(与我经常放它的页脚相反),也没有go。

当我重新加载页面时,拇指会消失,或者保留默认图标。

希望这是清楚的。有人知道我该怎么做吗?我很接近!我知道!lol.

如有任何协助,我们将不胜感激。提前谢谢。

我实际上解决了这个更深层次的jquery dom遍历。标签发生了变化,但本质上它做了我需要它做的事情(正如我最初的问题中所描述的)。把它放在这里给任何需要类似解决方案的人

$('.feedContBox').each(function(){
    var src = $(this).find('.feedContActual img:first').attr('src');
    $(this).find('.myThmDiv img').attr('src', src);
});

相关内容

最新更新