2014-03-28 53 views
2

好吧,我有:的Javascript:在DOM插入新的水平

<div id="container"> 
    <div id="mydiv"> 
    <p>Text</p> 
    ... Here is something more inside ... 
    </div> 
</div> 

我想有:

<div id="container"> 
    <div id="newdiv"> 
    <div id="mydiv"> 
     <p>Text</p> 
     ... Here is something more inside ... 
    </div> 
    </div> 
</div> 

所以,我怎麼能採取everyting裏面的 「容器」,並插入一個新的div「 newdiv「從孩子們使用JavaScript獲取」容器「中的孩子?使用jQuery是一個選項。

回答

1

使用.wrap()

$("#mydiv").wrap("<div class='newdiv'></div>"); 

Working Demo

1

可以使用.wrap():在所述一組匹配 元件

裹一個HTML結構中的每個元件的周圍。

$("#mydiv").wrap("<div id='newdiv'></div>"); 

Fiddle Demo

1
$('#container').contents().wrapAll('<div id="newdiv"/>'); 
1

如果你願意,你可以使用純JS:

var content = document.getElementById("container").innerHTML; 
var newHtml = "<div id='newDiv'>" + content + "</div>"; 
document.getElementById("container").innerHTML = newHtml; 

這裏是演示:http://jsfiddle.net/hWc95/

+0

+1容易做到原生javascript。但我在新的div上使用appendchild而不是純文本。 – A1rPun

+0

在這種情況下 - 是的,'appendChild'會更好。因爲我們只是_appending_。如果我們想要替換DOM,我們需要使用'innerHtml'。 –