6

テキスト内の画像を検索し、その画像を div 内にラップして別の div に移動する jQuery を実行しようとしていますが、うまく動作しないようです。

これまでに動作するコードは次のとおりです。

$(".newsIntro").find("img").wrap("<div class=\"newsImage\" />");

しかし、移動しようとすると、ページ上のすべての画像が 1 つの div 内で移動するか (親 div (".newsItem") に移動するのではなく)、または何も起こりません。

$(".newsImage").appendTo( $(this).closest(".newsItem") );

上記は何もしません:

$(".newsImage").appendTo(".newsItem");

上記のものは、それらすべてを最初の に移動します.newsItem div

HTML のスニペットを次に示します。

<div class="newsItem">
  <div class="newsHeader">
    <h2><a href="/news-information/67-latest-news-03.html">Latest News 03</a></h2>
  </div>
  <div class="newsIntro"><img src="/images/stories/opals-are-lucky/img_abopal_lucky.jpg" border="0" align="left" />Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce dictum sagittis sapien. Aliquam erat volutpat. Nulla facilisi. Ut purus neque, condimentum nec,
    auctor eget, semper ut, enim. Vestibulum sem tellus, vestibulum a, vehicula ut, feugiat id, libero. Pellentesque enim justo, condimentum sed, dictum at, viverra eget, odio. Aliquam feugiat metus id lacus. Cum sociis natoque penatibus et magnis dis
    parturient montes, nascetur ridiculus mus. Nam iaculis iaculis quam. Donec eu dui.</div>
  <div class="clear"></div>
</div>

<div class="newsItem">
  <div class="newsHeader">
    <h2><a href="/news-information/68-latest-news-03.html">Latest News 03</a></h2>
  </div>
  <div class="newsIntro"><img src="/images/stories/about-us/img_showroom.jpg" border="0" align="right" />Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce dictum sagittis sapien. Aliquam erat volutpat. Nulla facilisi. Ut purus neque, condimentum nec, auctor eget,
    semper ut, enim. Vestibulum sem tellus, vestibulum a, vehicula ut, feugiat id, libero. Pellentesque enim justo, condimentum sed, dictum at, viverra eget, odio. Aliquam feugiat metus id lacus. Cum sociis natoque penatibus et magnis dis parturient montes,
    nascetur ridiculus mus. Nam iaculis iaculis quam. Donec eu dui.</div>
  <div class="clear"></div>
</div>

4

1 に答える 1

13

次のように、各要素を使用してループする必要がある.each()ためthis、各要素を参照します。

$(".newsImage").each(function() {
  $(this).closest(".newsItem").append(this);
});

.appendTo()とにかくひっくり返されるので.append()、このルートに行く方が効率的です。

于 2010-11-04T23:44:57.143 に答える