2012-07-05 61 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>';