如何包装像这样的所有元素

时间:2010-12-19 00:05:15

标签: jquery dom tags wrapping wrapall

<div id="editor">
  text
  <div id="wrap"> <!-- here -->
    <img src="images/1.jpg"/>
  </div>
  text</p>
  <div id="wrap"> <!-- and here -->
    <img src="images/3.jpg"/>
    <img src="images/4.jpg"/>
    <img src="images/5.jpg"/>
    <img src="images/6.jpg"/>
  </div>
</div>

2 个答案:

答案 0 :(得分:4)

我想你想要包装<img>元素的分组。

如果是这样,请执行以下操作:

示例: http://jsfiddle.net/patrick_dw/RXFVM/1/

$('#editor > img:not(img + img)').each(function() {
    $(this).nextUntil(':not(img)').andSelf().wrapAll('<div class="wrap"></div>');
});
  • 'img:not(img + img)':获取图片前面没有图片的图片
  • .each():迭代它们
  • .nextUntil(':not(img)'):获取所有下一个元素,只要它们是图像
  • .andSelf():包含原始图片
  • .wrapAll('<div class="wrap"></div>'):包裹小组

请注意,我已将id="wrap"更改为class="wrap",因为您无法在页面上重复使用ID。


编辑:更新了示例链接以使用未损坏的图片。

答案 1 :(得分:0)

据我了解你想用jquery包装图像?

好吧它看起来像这样

$('img').wrap('<div id="wrap" />');

但如果你想要更好的答案,你必须更精确