如何使用jQuery包装一些项目?

时间:2011-09-17 17:50:40

标签: javascript jquery wrapall

我有这个代码,我无法直接修改:

<div id="registerMessage"> 
   <div class="pageTitle" style="padding:0px 0px 5px 0px;">
      Register 
   </div> 
   Some bla bla bla
</div>

<input type="hidden" name="ardir" value="" /> 
<input name="action" type="hidden" value="insert" /> 
<label>Email </label>
<div>
   <input  name="user[email]" id="user[email]" type="text" value=""  size="35" class="inputReg" />
</div>

<label>Password (5 chars)</label>
<div>
   <input name="user[passwd]" type="password" value=""  size="35" class="inputReg" />
</div>

<label>Password (confirm)</label>
<div>
   <input name="user[password_confirm]" type="password" value=""  size="35" class="inputReg" />
</div>

<div id="memomessage">
    (Other bla bla bal)
</div>            

我需要从第一个标签到最后一个div(已排除的记忆消息)换成新的div

<div id="registerBox"> the code of before </div>

3 个答案:

答案 0 :(得分:2)

$('label:first').nextAll().andSelf().not('#memomessage').wrapAll('<div id="registerBox">') 

这是fiddle

答案 1 :(得分:2)

使用以下

$('label:first').prev().nextUntil('#memomessage').wrapAll('<div id="registerBox"></div>');

http://jsfiddle.net/eeusN/1/

答案 2 :(得分:0)

假设您不关心#memomessage并且想要获得标签和div对,您可以使用next-adjacent选择器:

var newDiv = $('<div />', {id:'registerBox'});
$('label + div').prev().andSelf().wrapAll(newDiv);

工作示例:http://jsfiddle.net/x6pSZ/