2013-08-10 2 views
0

Мне нужно аккуратно обернуть элементы внутри body<div id="wrap">, используя jQuery/JavaScript. Конечным результатом должно быть:Как обернуть элементы внутри тела динамически

<body> 
    <div id="wrap"> 
     <!-- open div #wrap here --> 
     <div id="nav"> 
      <ul> 
       <li><a href="#">Menu 1</a></li> 
       <li><a href="#">Menu 2</a></li> 
      </ul> 
     </div> 
     <div id="main">....</div> 
    </div> 
    <!-- close div #wrap here, before close body tag --> 
</body> 

Должен ли я создать div и после добавления содержимого, которое уже существует внутри тела? Как мне это сделать?

Спасибо!

ответ

1

Используйте .wrapAll() метод, как показано ниже:

$('body').children().wrapAll("<div id='wrap'>"); 

JSBin Demo

+1

Самый простой способ! Я использовал ваше предложение. Огромное спасибо :) –

0
$(document.body).html("<div id='wrap'>...</div>") 
+0

Это стирает содержимое тела и заменяет эту строку. На самом деле вопрос не задавался. – dhaupin

3

Сначала вы хотели бы, чтобы захватить текущий HTML и сохранить его в переменной, то использование метода .html() будет делать чудеса:

$(function(){ 
    var bod = $("body"), current_html = bod.html(); 
    bod.html("<div id=\"wrap\">" + current_html + "</div>"); 
}); 
+0

Большое вам спасибо, вот что я искал :) –

+0

Не проблема, вы могли бы написать его и в одной строке, хотя это не очень красиво: '$ (" body "). Html ("

" + $("body").html() + "
"); ' – faino

0

wrapAll должны производить несколько Div тегов. Вместо этого я бы использовал wrapInner.

$('body').wrapInner('<div id="wrap">'); 
Смежные вопросы