相关疑难解决方法(0)

"剪切和粘贴" - 使用Javascript在DOM中移动节点

我的html代码看起来大致如下:

<div id="id1">
  <div id="id2">
    <p>some html</p>
    <span>maybe some more</span>
  </div>
  <div id="id3">
    <p>different text here</p>
    <input type="text">
    <span>maybe even a form item</span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

显然还有更多的东西,但这是基本的想法.我需要做的是切换#id2和#id3的位置,结果是:

<div id="id1">
  <div id="id3">...</div>
  <div id="id2">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有人知道一个函数(我确定我不是第一个需要这个功能的人),它可以读取和写入两个节点(及其所有子节点),以便在DOM中交换它们的位置?

javascript dom

34
推荐指数
1
解决办法
3万
查看次数

我可以使用JavaScript或CSS来关闭之前的div吗?

我在内容管理系统的限制下工作,有时迫使我做一些奇怪的事情,因为我没有完全控制HTML代码.

在这种情况下,我有一种情况,我希望一个DIV不嵌套在另一个DIV中.由于CMS设置,我不能只在HTML代码中重新排序DIV.

所以,我有这个:

<div class="blog">
   <div class="free-me">
      Hello world
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要的是:

<div class="blog">
</div>
<div class="free-me">
   Hello world
</div>
<div class="blog">
</div>
Run Code Online (Sandbox Code Playgroud)

如果我可以访问HTML,这就像复制和粘贴一些行一样简单.但是,因为我不能只改变HTML,我想知道的是,有什么方法可以使用CSS或JavaScript关闭blogDIV,这样free-me就可以成为兄弟.

我试过这个(即使我知道它不会起作用):

.free-me::before {
    content: '</div>';
}
Run Code Online (Sandbox Code Playgroud)

正如所怀疑的那样,只是呈现了</div>进入页面的文本.

对于JavaScript,我当然不是专家,但似乎你只能插入带有开始和结束标签的完整元素,并且命令就像document.createElement('div');我看不到采用现有DIV并关闭它的明确方法.

有没有办法,无论是使用CSS还是JavaScript,我都可以强制DIV关闭或插入结束</div>标记?

注意:最好是非jQuery解决方案.

html javascript css

5
推荐指数
1
解决办法
174
查看次数

标签 统计

javascript ×2

css ×1

dom ×1

html ×1