我在从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);
});