Есть следующий код:
<p>
<img src.../>
<img src.../>
</p>
<p>
<img src.../>
<img src.../>
<img src.../>
</p>
<p>
<img src.../>
</p>
Как с помощью jquery обернуть в контейнер те теги img, которые идут подряд чтобы стало так?
<p>
<span class='set'>
<img src.../>
<img src.../>
</span>
</p>
<p>
<span class='set'>
<img src.../>
<img src.../>
<img src.../>
</span>
</p>
<p>
<img src.../>
</p>
Есть метод wrapAll, но я не понимаю, что ему передать
$("???").wrapAll("<span class='set'>");
Если делать wrapAll по img+img он обернет второй, третий и последующие, но не первый, а p>img перенесет все шесть img в первый p.
$(function(){
$('pre').text("Исходный код: " + $('div').html());
// Перебор всех тегов "p" и "обвертывание" img'ов внутри каждого "p" отдельно.
$("p").each(function(){
if ($(this).children("img").length > 1) $(this).children("img").wrapAll("<span class='set'>");
});
$('pre').text($('pre').text() + "Результат: " + $('div').html());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre>
</pre>
<div hidden>
<p>
<img src />
<img src />
</p>
<p>
<img src />
<img src />
<img src />
</p>
<p>
<img src />
</p>
</div>
for(let image of document.images){
const parent = image.parentNode;
if(parent.classList.contains('set')) continue;
const span = document.createElement('span');
span.classList.add('set');
parent.insertBefore(span, parent.firstChild);
for(let child_img of parent.getElementsByTagName('img'))
span.appendChild(child_img);
}
p{
border: 1px solid black;
}
.set{
display: block;
border: 1px solid red;
}
img{
width: 20px; height: 20px;
}
<p>
<img src.../>
<img src.../>
</p>
<p>
<img src.../>
<img src.../>
<img src.../>
</p>
<p>
<img src.../>
</p>
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте, как заменить input [type=submit] на button [type=submit] через javascript, input кнопки невидимы и обычным способом их не заменить, а требуется сделать...
Есть фотогалерея на facybox 3Нужно под каждым фото добавить блок, который содержит текст и ссылку