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

问题是循环内部的选择器。它正在查找所有 img 标签,而不仅仅是所需的 li.rssitem 中的标签。

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