使用Javascript在DOM中向上移动类div?

使用Javascript在DOM中向上移动类div?,javascript,dom,Javascript,Dom,我正试图将一个类div(即“topbar”)移出其容器,并移到id为的div(即“body”)之上。使用JavaScript可以做到这一点吗 没有运气就尝试过这样的事情: document.getElementsByClassName('topbar').appendChild(document.getElementsById('body')); 更新问题以便更好地理解。我想将顶杆移到躯干div上方 html: <div id="body"> <div class="r

我正试图将一个类div(即“topbar”)移出其容器,并移到id为的div(即“body”)之上。使用JavaScript可以做到这一点吗

没有运气就尝试过这样的事情:

  document.getElementsByClassName('topbar').appendChild(document.getElementsById('body'));
更新问题以便更好地理解。我想将顶杆移到躯干div上方

html:

<div id="body"> 
<div class="random"> </div> 
<div class="random"> </div> 
<div class="topbar"> </div> 
</div> 

看起来您正试图将
顶栏
元素移动到类
主体
的前面和元素。这可以使用
insertBefore()
方法实现:



注意:由于此代码访问并操作DOM,因此需要将整个块包装在
window.onload=function(){……脚本在这里……},以确保在脚本运行之前加载DOM。

类似的内容

var container=document.getElementById('container');
var content1=document.getElementById('content1');
var subcainer=document.getElementById('subcainer');
var body=document.body;
var content2=document.getElementById('content2');
container.insertBefore(content1,subContainer);
body.insertBefore(content2,容器)
#容器{
填充:10px;
背景颜色:浅灰色;
}
#分包商{
边框:1px纯黑;
背景颜色:灰色;
}

这里的内容1胡说八道
这里的内容2胡说八道
内容3在这里胡说八道

您正在尝试附加文档正文。你能发布你的完整代码并解释你想做的事情吗?你想在“body”div上面插入“topbar”div吗?是的,这是正确的。更新了问题。他没有提到他想把顶栏放在哪里……作为“身体”的第一个孩子还是在“身体”上面?回答这样一个不清楚的问题会鼓励填鸭式喂食…接近!这将div放置在目标id下方。我希望它放置在目标id上方@那没用。id为“body”的div是dom中的第一个div,在此之前它只是一个body标记。它是否需要父元素才能工作?谢谢你的帮助!它应该可以工作,因为它将
视为父元素。下面是一个演示工作代码的函数。我还将上面的内容简化为一个单一的答案,而不是一系列的编辑。只使用Id是我设法做到的。但是我想把一个类div移到它的容器(div id)外面和上面。@InfotheekSE,检查我编辑的帖子,这就是你要找的吗?
window.onload = function () {

  //find the element to insert before and then get its parent element
  var beforeElement = document.getElementById('body');
  var parentElement = beforeElement.parentNode;

  //find the element we want to move
  //you need the array syntax because 'getElementsByClassName' returns an array of matching elements (even if there is only one match)
  var moveElement = document.getElementsByClassName('topbar')[0];

  //insert the moveElement into the parentElement before the theFirstChild
  parentElement.insertBefore(moveElement, beforeElement);

};