Почему готовятся 2 изображения?

0

Я пытаюсь добавить изображение в div img-wrapper и обернуть его в href после заголовка. Может быть, это сбивает с толку. Вот код:

     $(".post").each(function() {
    if($(this).find(".post-excerpt > p:first-child").has("img").length){

        if($(this).find(".post-title").has("a").length){

            $(this).find(".img-wrapper").prepend("<a href='"+$(this).find(".post-title a").attr("href")+"'></a>");

            $(this).find(".post-excerpt > p:first-child").has("img").find("img").prependTo($(this).find(".img-wrapper a"));

        }else{

            $(this).find(".post-excerpt > p:first-child").has("img").find("img").prependTo($(this).find(".img-wrapper"));
        }
    }
});

Все работает, но привязка и div добавляются в 2-х местах, в правильном месте (внутри .img-wrapper, а также в .post-title a. Я не понимаю, почему его добавили в post-title a Вот результат html:

<article class="post">

    <div class="img-wrapper"><a href="/test-image-post/#top"><img alt="" src="/content/images/2013/Oct/img.jpg"></a>

        <header class="post-header">

            <h2 class="post-title"><a href="/test-image-post/#top"><img alt="" src="/content/images/2013/Oct/img.jpg">Post Title</a></h2>

        </header>

        <section class="post-excerpt">

        </section>

    </div>

</article>

Опять же, я пытаюсь добавить изображение только к div img-wrapper. Благодарю.

Теги:
prepend

1 ответ

1
Лучший ответ

Я попытался воспроизвести ваш код в своей локальной системе и обнаружил, что изображения приходят дважды из-за:

".img-wrapper a", instead you have to use it as ".img-wrapper > a:first-child" after prepending anchor.

Скрипт здесь: http://jsfiddle.net/BvGXs/

Изображение не загружается из-за пути, хотя и правильно добавлено.

  • 0
    Благодарю. Это имеет смысл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню