Как обернуть некоторые элементы с помощью jQuery? - PullRequest
1 голос
/ 17 сентября 2011

У меня есть этот код, который я не могу напрямую изменить:

<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 ]

2 голосов
/ 17 сентября 2011

используйте следующие

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

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

2 голосов
/ 17 сентября 2011
$('label:first').nextAll().andSelf().not('#memomessage').wrapAll('<div id="registerBox">') 

Вот скрипка

0 голосов
/ 17 сентября 2011

Если вы не заботитесь конкретно о #memomessage и хотите получить пары label и div, вы можете использовать селектор рядом * :

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

Рабочий пример: http://jsfiddle.net/x6pSZ/

...