2009-04-27 46 views
2

我想使用jQuery來動態擴展我的標記,以便我的div顯示爲漂亮的圓形框。什麼是最簡單的方式來包裝與兄弟姐妹在jQuery中的div?

例如,如果我的DOM有專屬編號一系列的div對象:

$(「.isequeue」) 

我要替換/包這些div使:

<div id="queuediv0" class="isequeue" > </div> 

可使用選擇最終結果如下:

<div class="isequeue_wrapper"> 
    <div class="isequeue_wrapper_oc"> 
     <div class="isequeue_wrapper_dk" style="margin: 0 5px;"> </div> 
     <div class="isequeue_wrapper_dk" style="margin: 0 3px;"> </div> 
     <div class="isequeue_wrapper_dk" style="margin: 0 2px;"> </div> 
     <div class="isequeue_wrapper_dk" style="margin: 0 1px;"> </div> 
    </div> 
    <p class="isequeue_header"> 
     Header text 
    </p> 
    <div class="isequeue_wrapper_ic"> 
     <div class="isequeue_wrapper_lt" style="margin: 0 5px;"> </div> 
     <div class="isequeue_wrapper_lt" style="margin: 0 3px;"> </div> 
     <div class="isequeue_wrapper_lt" style="margin: 0 2px;"> </div> 
     <div class="isequeue_wrapper_lt" style="margin: 0 1px;"> </div> 
    </div> 
    <div id="queuediv0" class="isequeue" > 
    </div> 
    <div class="isequeue_wrapper_oc"> 
     <div class="isequeue_wrapper_dk" style="margin: 0 1px;"> </div> 
     <div class="isequeue_wrapper_dk" style="margin: 0 2px;"> </div> 
     <div class="isequeue_wrapper_dk" style="margin: 0 3px;"> </div> 
     <div class="isequeue_wrapper_dk" style="margin: 0 5px;"> </div> 
    </div> 
</div> 

附加標記可以隨時添加或只是隱藏在原始頁面中,以便可以選擇和複製它。

我確信有一個乾淨的方法來完成這個,但它現在已經躲過我了。 jQuery.wrap()會將選定的對象放到提供的源代碼的最裏面,但是如果你希望所選擇的項目是新添加的源代碼的兄弟,你怎麼做到這一點。

感謝, 吉姆

回答

2

像這樣的東西可以工作:

$(function() { 
    var $isqueue = $('.isequeue'); 
    $isqueue.wrap('<div class="isequeue_wrapper"></div>'); 
    $isqueue.before(/* All the isequeue_wrapper_oc, isequeue_header, isequeue_wrapper_ic and stuff */).after(/* All the isequeue_wrapper_ic stuff */); 
}); 

這將是明智的,只是有所有的東西預先製作的,然後就克隆它。但是,你也可以將它們作爲一個字符串並以相同的方式插入。

0

前()和()後應該工作。