2009-04-27 26 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

前()和()后应该工作。