2015-03-22 2 views
1

У меня возникли проблемы с копированием эскизов из simplepie rss. Ive посмотрел повсюду, включая здесь, на SO, но, похоже, не нашел хорошего решения, которое работает. Тем более, что я хочу эскизы на ВСЕ каналы и их потоки.Simplepie rss отсутствует эскиз, альтернативное решение с использованием jQuery

Это говорит о том, что я решил сделать, что с помощью jquery для поиска div-файла rss для источника img сохраните эту исходную строку в переменной и используйте это значение, чтобы заполнить другой div, который i специально для эскизов. Почти у всех сообщений есть изображение, так что все должно быть хорошо.

Я получил его, но это часть, которую я не могу обернуть вокруг своего мозга. rss загружается на страницу с помощью php через цикл for. Пихта ради тестирования приложения, я тянуть 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 

Я понимаю, почему его делать это, что я не могу понять это, как для создания цикла кода jQuery, как это делает php. Я попытался вставить «сценарий» блок в большой палец DIV так он перебирает, как петля проходит, как это:

<div class="feedThm"> 
    <script type="text/javascript"> 
    replaceThm(); 
    </script> 

    <img src="images/default-thm.jpg" alt=""> 


</div> 

, но безрезультатно.

Ive также помещает тег сценария в заголовок (как противопоставить нижнему колонтитулу, где я всегда его кладу), а также нет.

Когда я перезагружаю страницу, большой палец просто исчезает ИЛИ сохраняет значок по умолчанию.

Надеюсь, это ясно. Кто-нибудь знает, как я могу это сделать? im близко! Я знаю это! лол.

Любая помощь приветствуется. Заранее благодарю.

+0

'$ ('feedContActual'). Найти ("IMG"). Атр ("ЦСИ")' получит 'src' атрибут из первого изображения в первом элементе '.feedContActual'. Вам нужно быть более конкретным с вашим селектором, так что он нацелен только на тот элемент, который вы сейчас итерируете. (Предполагая, что есть какая-то итерация, так как вы хотите, чтобы это работало на нескольких сообщениях ... но вы не показали нам, как вы на самом деле называете эту функцию.) – CBroe

+0

Это проблема @CBroe. Я не знаю, с чего мне позвонить. Ive поставил функцию «replaceThm()» в заголовке над телом, но не работает. Я думал о том, чтобы добавить его к самому div, но, что я знаю, вы не можете добавлять события onload таким образом, чтобы это было там, где я застрял – somdow

+0

Насколько мне известно, я знаю, как добавить его один раз, но не тогда, когда его рекурсивный (или циклический). Thats, где мне нужна помощь – somdow

ответ

0

Я фактически решил этот более глубокий ход jquery dom. Тэги изменились, но, по сути, он делает то, что мне нужно для этого (как описано в моем первоначальном вопросе). Собираем здесь для тех, кто нуждается подобное решение

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