Обтекание нескольких изображений внутри <div>в jQuery - PullRequest
1 голос
/ 23 марта 2010

Мне нужно найти все изображения внутри div и обернуть их div. Вот код, который я придумаю, но он не работает! Почему?

jQuery(function() {
  my_selection = [];
  $('.post').each(function(i) {
    if ($(this).find('img').length > 1) {
      my_selection.push(['.post:eq(' + i + ')']);
    }
  });
  $(my_selection.join(',')).wrapAll('<div class="wrapper"></div>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Ответы [ 6 ]

3 голосов
/ 23 марта 2010

Как насчет чего-то вроде:

$('.post img').wrapAll('<div class="wrapper" />');

.post img получит коллекцию IMG тегов в вашем контейнере .post, а wrapAll применяет DIV вокруг каждого из них.

Страница справки для функции wrapAll на самом деле имеет достаточно близкий пример того, что вы хотите.

1 голос
/ 23 марта 2010

это работает!

$('.post').each(function(){
    var container = $(this);
    $('img', container).wrapAll('<div class="slideshow" />');
});
1 голос
/ 23 марта 2010

Трудно сказать, потому что я не вижу вашу разметку, но что-то вроде:

$('.post img').wrapAll('<div class="wrapper" />');
0 голосов
/ 23 марта 2010

Оберните div вокруг каждого img внутри .post:

$('.post img').wrap('<div class="wrapper" />');

Оберните div вокруг каждого сообщения с img:

$('.post:has(img)').wrap('<div class="wrapper" />');

Переместите все div, имеющие imgвнутри оболочки div:

$('<div class="wrapper" />').append($('.post:has(img)'));
0 голосов
/ 23 марта 2010
$('img').each(function (){
   $(this).wrap('<div class="new" />');
});
0 голосов
/ 23 марта 2010

Попробуйте это

 $('.post img').each(function() {
      $(this).wrap($('<div/>', { 'class': 'wrapper'}));
    });

Вот ссылка на аналогичный вопрос, который я задал:

Создание новой ссылки привязки Div Arround при нажатии

...