首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用javascript在DOM中注入一个DIV容器

用javascript在DOM中注入一个DIV容器
EN

Stack Overflow用户
提问于 2015-02-03 23:55:53
回答 2查看 1.9K关注 0票数 2

我想知道如何用javascript在DOM中的元素周围创建一个容器?我以前成功地在html中注入了DIVs,但是需要针对几个元素,并将它们放置在容器中,并且不确定如何进行。

这是html:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="menubar">
  <div class="searching myClass yourClass"></div>
  <ul class="navVoordelen">
    <li></li>
    <li></li>
  </ul>
  <a class="navLogo"></a>
  <div class="langsel"></div>
  <a class="navLogin"></a>
  <a class="navLogin"></a>
  <a class="navLogin"></a>
  <ul class="newnav clearfix animated">
    <li></li>
    <li></li>
  </ul>
</div>

我需要将容器放在父级Menubar下面,并让它在第二个UL类之前结束。这就是我想要的样子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="menubar">
  <div div="container">
    <div class="searching myClass yourClass"></div>
    <ul class="navVoordelen">
      <li></li>
      <li></li>
    </ul>
    <a class="navLogo"></a>
    <div class="langsel"></div>
    <a class="navLogin"></a>
    <a class="navLogin"></a>
    <a class="navLogin"></a>
  </div>
  <ul class="newnav clearfix animated">
    <li></li>
    <li></li>
  </ul>
</div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-04 00:39:14

我建议采取以下办法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function wrapAllPrevious() {
  // this is assigned via the Function.prototype.call()
  // method, later:
  var _self = this,
      // creating a <div> element:
      div = document.createElement('div');
  // assigning an 'id' to that created-<div>:
  div.id = 'demo';

  // inserting the created-<div> before the _self/this
  // element, using insertBefore():
  _self.parentNode.insertBefore(div, _self);
  // while the created-<div> has a previousSibling:
  while (div.previousSibling) {
    // we insert that previous-sibling before firstChild
    // of the <div> (effectively prepending the element
    // to the created-<div>):
    div.insertBefore(div.previousSibling, div.firstChild);
  }
}

// calling the function, using (as noted earlier)
// Function.prototype.call() to assign the specified
// <ul> as the 'this' of the function (using
// document.querySelector() to return the specific node:
wrapAllPrevious.call(document.querySelector('ul.newnav.clearfix.animated'));
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#demo {
  border: 2px solid #f00;
}

#demo::before {
  content: "Newly-added <div> element.";
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="menubar">
  <div class="searching myClass yourClass"></div>
  <ul class="navVoordelen">
    <li></li>
    <li></li>
  </ul>
  <a class="navLogo"></a>
  <div class="langsel"></div>
  <a class="navLogin"></a>
  <a class="navLogin"></a>
  <a class="navLogin"></a>
  <ul class="newnav clearfix animated">
    <li></li>
    <li></li>
  </ul>
</div>

参考文献:

票数 1
EN

Stack Overflow用户

发布于 2015-02-04 00:09:00

您可以在javascript中使用以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var div = '<div class="container">';
var closediv = '</div>';
theParent =document.getElementsByClassName("menubar");
theParent.insertBefore(div, theParent.firstChild);

document.getElementsByClassName("menubar").appendChild(closediv);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28316219

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文