2012-07-05 60 views
5

架格,我有以下結構:的JavaScript得到父元素,寫兄弟姐妹

<div class="parent"> 
    <div id="child1">Content here</div> 
    <div class="child2">Content here</div> 
</div> 

在onload事件,我想包括「持有人」格,保存所有父母的孩子,像這樣:

<div class="parent"> 
    <div id="holder"> 
    <div id="child1">Content here</div> 
    <div class="child2">Content here</div> 
    </div> 
</div> 

只知道「child1」id,如何在自己和兄弟姐妹周圍添加持有者div?

思考

  • 的 「child1」 id是唯一已知的標識符。
  • 「parent」和「child2」類是動態名稱,並且會更改,因此不能用作標識符。
  • 需要成爲香草JavaScript。

想法?

+0

難道你的問題本來有一個jQuery的標籤,而不是說「香草的JavaScript」?只是想知道,因爲你有這麼多的jQuery答案(包括我在內),我確信它在我回答的時候在某處提到了jQuery! – 2012-07-05 12:12:21

+2

對不起詹姆斯,我沒有提到JQuery。 (我的帖子從未被編輯過) – 2012-07-05 12:20:18

回答

18

看到,因爲這必須是JavaScript的(而不是jQuery的),你只能通過indentify ID的child1你可以做一些事情,原油,因爲這:

var child1 = document.getElementById("child1"), 
    parent = child1.parentNode, 
    contents = parent.innerHTML ; 
    parent.innerHTML = '<div id="holder">' + contents + '</div>'; 

希望這有助於...

+3

+1是唯一注意到「需要成爲香草JavaScript」的人!我敢肯定,當問題首次被問到的時候,這一點並不存在...... – 2012-07-05 12:04:25

+0

哪個人刪除了:( – 2012-07-05 12:06:57

+0

是的,.innerHTML是粗俗的。 – 2012-07-05 12:08:21

1

他說沒有jQuery的,這聽起來像一個家庭作業,但:

var el = document.getElementById('child1'); 
var parent = el.parentNode; 
parent.innerHTML = '<div id="holder">' + parent.innerHTML + '</div>';