jQuery将div包装器添加到指定的元素

时间:2013-03-02 19:36:51

标签: jquery multiple-columns

我有一个CMS生成的HTML块。我想为一组特定元素添加一些DIV包装器。

<ul id="gform_fields_1">
    <li id="field_1_8" class="gfield">
        <!-- content -->
    </li>
    <li id="field_1_9" class="gfield">
        <!-- content -->
    </li>
    <li id="field_1_10" class="gfield">
        <!-- content -->
    </li>
    <li id="field_1_11" class="gfield">
        <!-- content -->
    </li>
    <li id="field_1_12" class="gfield">
        <!-- content -->
    </li>
    <li id="field_1_13" class="gfield">
        <!-- content -->
    </li>
    <li id="field_1_14" class="gfield">
        <!-- content -->
    </li>
</ul>

我想达到以下模式:

<ul id="gform_fields_1">
    <div class="wrap">
        <li id="field_1_8" class="gfield">
            <!-- content -->
        </li>
        <li id="field_1_9" class="gfield">
            <!-- content -->
        </li>
        <li id="field_1_10" class="gfield">
            <!-- content -->
        </li>
    </div>
    <div class="wrap">
        <li id="field_1_11" class="gfield">
            <!-- content -->
        </li>
    </div>
    <div class="wrap">
        <li id="field_1_12" class="gfield">
            <!-- content -->
        </li>
        <li id="field_1_13" class="gfield">
            <!-- content -->
        </li>
    </div>
</ul>

包装适用于特定的一组元素,例如我需要将#field_1_8,#field_1_19和#field_1_10包含在DIV中,然后将#field_1_11包含在DIV中,然后将其余部分包含在内。重点是,我想指定ID,而不是基于任何逻辑,可以这么说。

.wrap()似乎是要走的路,就是这样:

$('LIST ALL IDs').wrap('<div class="new" />');

任何提示都非常赞赏。

由于

2 个答案:

答案 0 :(得分:6)

由于jQuery的选择器语法非常类似于CSS,因此您可以简单地列出您的元素:

$('li#field_1_8, li#field_1_9, li#field_1_10').wrapAll('<div class="new" />')

答案 1 :(得分:0)

您可以使用slice

$('li').slice(0, 3).wrapAll("<div class='wrap'></div>")
$('li').slice(3,4).wrap("<div class='wrap'></div>")
$('li').slice(4,7).wrapAll("<div class='wrap'></div>")

jsfiddle:http://jsfiddle.net/NpxxR/