1

私は現在、フォーマットが基本的にタイトル->画像->テキストコンテンツであるRSSフィードを取得しています。画像が先になるように再フォーマットしたいと思います。私は現在試しています:

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

HTMLは次のようになります。

<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>

リストに多くのアイテム(すべて画像付き)があることを除いて、これは機能します。このコードは、すべてのh3の前にすべての画像を配置します。私は明らかに正しくループするのに問題があります。どうもありがとう!

4

2 に答える 2

1

問題は、ループ内にあるセレクターです。目的のli.rssitem内のタグだけでなく、すべてのimgタグを見つけています。

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

これで問題が解決するかどうかお知らせください。

更新: remove() を削除しました。ありがとうDT。

于 2011-02-28T17:56:04.150 に答える
0

このコードを試してください:

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

私はそれをテストしていないので、箱から出してすぐに動作するかどうかはわかりませんが、ニーズに合わせて変更できることを願っています.

于 2011-02-28T08:13:30.447 に答える