我目前正在提取RSS源,其格式基本上是title-> image->文本内容。我想重新格式化,以便图像首先出现。我正在尝试:
<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之前。我显然无法正确循环。非常感谢你们!
答案 0 :(得分:1)
问题是循环内部的选择器。它找到了所有的img标签,而不仅仅是所需的li.rssitem里面的标签。
<script type="text/javascript">
$(document).ready(function() {
$("li.rssitem").each(function() {
$(this).find(".rssdescription a img").insertBefore("h3");
});
});
</script>
如果这解决了您遇到的问题,请告诉我。
UPDATE:摆脱了remove(),因为它会搞砸你。谢谢DT。
答案 1 :(得分:0)
试试这段代码:
$("li.rssitem").each(function() {
var target = $(this).children("h3");
$(this).find("img").each(function() {
$(this).remove();
$(target).before($(this));
});
});
我没有测试过,所以我不确定它是否可以开箱即用,但希望你能够根据自己的需要对其进行修改。