2011-02-28 7 views
1

현재이 형식이 제목 -> 이미지 -> 텍스트 콘텐츠 인 RSS 피드를 가져오고 있습니다. 이미지가 먼저 오도록 포맷을 다시하고 싶습니다. 저는 현재 노력하고 있어요 : 목록에있는 많은 항목 (이미지 모두)가있는 것을 제외하고 작동jQuery로 RSS 피드 다시 만들기

<ul id="rssitems"> 

<li class="rssitem"><h3 class="rsstitle"></h3> 
<div class="rssdescription"><p><a href="#"><img src="..."></a></p><p>content</p></div></li> 

<li class="rssitem"><h3 class="rsstitle">><a href="#">...</a></h3> 
<div class="rssdescription"><p><a href="#"><img src="..."></a></p><p>content</p></div></li> 

</ul> 

:

<script type="text/javascript"> 
    $(document).ready(function() { 
$("li.rssitem").each(function() { 
$(".rssdescription a img").remove().insertBefore("h3"); 
    }); 
    }); 
</script> 

HTML처럼 보인다. 이 코드는 모든 h3 앞에 모든 이미지를 넣습니다. 분명히 올바르게 루핑하는 데 문제가 있습니다. 고마워요!

답변

0

이 코드를보십시오 :

$("li.rssitem").each(function() { 
    var target = $(this).children("h3"); 
    $(this).find("img").each(function() { 
     $(this).remove(); 
     $(target).before($(this)); 
    });  
}); 

나는 그것을 테스트하지 않았다을, 그래서 나는 그것을 상자 밖으로 작동합니다 모르겠지만, 희망 당신은 정장 여러분의 필요에 수정할 수 있습니다 .

+0

시도해 주셔서 감사합니다. 아아, 아무 것도하지 않는 것 같습니다. 나는 또한 이것이 트릭을 수행해야한다고 생각했다 : $ ("li.rssitem") 각각 (function() { var target = $ (this) .filter ("h3"); $ (". rssdescription a img "). 각각의 (function() { $ (this) .remove(); $ (대상) .insertBefore (이); }); }); .before를 .insertBefore로 변경하고 img 이후의 괄호 아직 안된다 – Paul

+0

나는 그것을 얻었다;) 나는 working code로 나의 대답을 편집했다! filter()는 요소의 자식을 검색하는 좋은 방법이 아니므로 find()를 사용해야합니다 – krtek

+0

감사합니다! Krtek의 솔루션이 작동합니다! – Paul

1

문제는 루프 내부에있는 선택기입니다. 모든 img 태그를 찾고, 원하는 li.rssitem 안의 태그 만 찾는 것이 아닙니다.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("li.rssitem").each(function() { 
      $(this).find(".rssdescription a img").insertBefore("h3"); 
     }); 
    }); 
</script> 

내가 겪고있는 문제가 해결되는지 알려주세요.

업데이트 : 나중에 제거 할 수 있도록 제거()를 제거하십시오. DT 감사합니다.

+0

'remove()'스텝이 필요 없다고 생각합니다. [insertBefore()'] (http://api.jquery.com/insertBefore/)는 엘리먼트를 새로운 위치로 옮길 것입니다.), [api link] (http://api.jquery.com/insertBefore/)에 따르면. –

+0

데이비드 감사합니다. 내 대답을 업데이트했습니다. – McHerbie

+0

도움이되기를 기쁘게 생각합니다 :) (또한, 누군가에게 응답하는 경우 자신의 이름 앞에'@ '기호를 사용하는 것이 가장 좋습니다. 그러면 응답하는 사람에게 알립니다.) +1 =) –