2013-03-02 111 views
3

我有一個CMS生成的HTML塊。我想添加一些DIV包裝到一組特定的元素。jQuery將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" />'); 

任何提示大加讚賞。

感謝

回答

6

因爲jQuery的選擇語法非常像CSS,你可以簡單地列出你的元素,像這樣:

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

謝謝,但是這將包裹每個個人ID在「新的「,而我需要將這3個元素包裝在」新「中。 – Dave 2013-03-02 20:02:12

+0

yes.you必須使用'wrapAll'來包裝單個div中的多個元素 – SRy 2013-03-02 20:07:46

+0

完美,謝謝。 – Dave 2013-03-02 20:25:04

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/

+0

謝謝。這可以很好地工作,但通過選擇元素ID,我有更多的控制權來執行我所需要的操作(例如,生成的代碼可以包含隱藏元素,這使得0,3/3,4等目標的定位更加棘手) – Dave 2013-03-02 20:26:26