0

当我有元素和普通文本时,如何包装内容的一部分?我已经尝试过.after(),但这会自动添加一个结束标签。

我有这个:

<div class="block">
    <a href="#">example 1</a>
    .
    <a href="#">example 1</a>
    .
    <a href="#">example 1</a>
    .
    <a href="#">example 1</a>
</div>

我必须将其转换为:

<div class="block">
    <a href="#">example 1</a>
    <div class="wrap">
        .
        <a href="#">example 1</a>
        .
        <a href="#">example 1</a>
        .
        <a href="#">example 1</a>
    </div>
</div>
4

3 回答 3

2
$('.block').contents().filter(function(){
   return $(this).index() > 0;
}).wrapAll('<div class="wrap"></div>');

http://jsfiddle.net/uhzsN/

于 2013-02-13T21:25:29.860 回答
0

其他答案更清晰,而这给了你一些特殊性

var target = $($(".block a").slice(1)); // drop 1st
var container = $("<div class='wrap' />");
container.insertBefore($(target[0]));
target.each(function () {
    $(this).appendTo(container);
});
于 2013-02-13T21:21:23.310 回答
0
$('.block a:gt(0)').wrapAll('<div class="wrap" />');
于 2013-02-13T21:25:01.947 回答