Simplepie rss 缺少缩略图,使用 jQuery 的替代解决方案
Simplepie rss missing thumbnail, alternate solution using jQuery
我在从 simplepie rss 中提取缩略图时遇到了问题。我查看了所有内容,包括此处的 SO,但似乎无法找到有效的解决方案。特别是因为我想要所有提要及其主题的缩略图。
这就是说,我决定做的是,使用 jquery 在 rss 内容 div 中搜索 img 源,将该源字符串保存到变量中,然后使用该值填充我专门为缩略图设置的另一个 div。几乎所有 post 都有图片,所以应该没问题。
我让它工作了,但有一部分我无法全神贯注。
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 中的图像将其放在所有 post 上。它从第一个 post 中获取图像并将其作为缩略图添加到所有 post 中。
例如,假设我们有最初的两个 post。
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
我明白为什么要这样做,我想不通的是如何使 jQuery 代码循环像 php 那样。我已经尝试将 "script" 块插入到拇指 div 中,因此它会随着循环的进行而迭代,如下所示:
<div class="feedThm">
<script type="text/javascript">
replaceThm();
</script>
<img src="images/default-thm.jpg" alt="">
</div>
但无济于事。
我还把脚本标签放在页眉上(与我总是放它的页脚相对),但也没有。
当我重新加载页面时,缩略图消失或保留默认图标。
希望这是清楚的。任何人都知道我如何做到这一点?快到了!我知道!哈哈
感谢任何帮助。先谢谢你了。
这个更深层次的jquerydom遍历我居然解决了。标签发生了变化,但本质上它做了我需要它做的事情(如我最初的问题中所述)。将它放在这里供需要类似解决方案的任何人使用
$('.feedContBox').each(function(){
var src = $(this).find('.feedContActual img:first').attr('src');
$(this).find('.myThmDiv img').attr('src', src);
});
我在从 simplepie rss 中提取缩略图时遇到了问题。我查看了所有内容,包括此处的 SO,但似乎无法找到有效的解决方案。特别是因为我想要所有提要及其主题的缩略图。
这就是说,我决定做的是,使用 jquery 在 rss 内容 div 中搜索 img 源,将该源字符串保存到变量中,然后使用该值填充我专门为缩略图设置的另一个 div。几乎所有 post 都有图片,所以应该没问题。
我让它工作了,但有一部分我无法全神贯注。 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 中的图像将其放在所有 post 上。它从第一个 post 中获取图像并将其作为缩略图添加到所有 post 中。
例如,假设我们有最初的两个 post。
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
我明白为什么要这样做,我想不通的是如何使 jQuery 代码循环像 php 那样。我已经尝试将 "script" 块插入到拇指 div 中,因此它会随着循环的进行而迭代,如下所示:
<div class="feedThm">
<script type="text/javascript">
replaceThm();
</script>
<img src="images/default-thm.jpg" alt="">
</div>
但无济于事。
我还把脚本标签放在页眉上(与我总是放它的页脚相对),但也没有。
当我重新加载页面时,缩略图消失或保留默认图标。
希望这是清楚的。任何人都知道我如何做到这一点?快到了!我知道!哈哈
感谢任何帮助。先谢谢你了。
这个更深层次的jquerydom遍历我居然解决了。标签发生了变化,但本质上它做了我需要它做的事情(如我最初的问题中所述)。将它放在这里供需要类似解决方案的任何人使用
$('.feedContBox').each(function(){
var src = $(this).find('.feedContActual img:first').attr('src');
$(this).find('.myThmDiv img').attr('src', src);
});