我有一个使用 Wordpress 的高级自定义字段的灵活布局。我想用portrait
包含 div 的类名包装图像,我已经用 jQuery 的wrapAll
函数完成了这个,我面临的问题是我只希望它们成对分组,并保持在相同的位置大教堂。理论上,元素可以在article
标签中以任何顺序出现。
唯一不变的是具有类的图像portrait
将始终彼此相邻出现。
这是典型布局的示例:
<article class="new-post">
<img src="image.jpg" class="landscape">
<div class="text-block-type-a">
<p>Some text</p>
</div>
<img src="image2.jpg" class="portrait">
<img src="image3.jpg" class="portrait">
<div class="text-block-type-b">
<p>Some different text</p>
</div>
<img src="img4.jpg" class="landscape">
<img src="img6.jpg" class="landscape">
<img src="img7.jpg" class="portrait">
<img src="img8.jpg" class="portrait">
<div class="text-block-type-c">
<p>even more text</p>
</div>
<img src="img9.jpg" class="landscape">
</article>
这是我想要实现的标记:
<article class="new-post">
<img src="image.jpg" class="landscape">
<div class="text-block-type-a">
<p>Some text</p>
</div>
<div class="portrait-wrap">
<img src="image2.jpg" class="portrait">
<img src="image3.jpg" class="portrait">
</div>
<div class="text-block-type-b">
<p>Some different text</p>
</div>
<img src="img4.jpg" class="landscape">
<img src="img6.jpg" class="landscape">
<div class="portrait-wrap">
<img src="img7.jpg" class="portrait">
<img src="img8.jpg" class="portrait">
</div>
<div class="text-block-type-c">
<p>even more text</p>
</div>
<img src="img9.jpg" class="landscape">
</article>
这是我正在使用的 jQuery:
$(".new-post img.portrait").each(function(index) {
$(this).next("img.portrait").andSelf().wrapAll("<div class='portrait-set clear'></div>")
});
我认为它走在正确的轨道上,但上面的代码片段产生的标记与我需要的略有不同。它将两个图像包装在一个 div 中,但随后也将第二个图像包装在另一个 div 中。可以在这里看到一个演示:https ://jsfiddle.net/kycmmkdx/
谁能指出我正确的方向?任何帮助是极大的赞赏!