Javascript 替换父级 html(删除子级)

标签 javascript

我想循环页面上的每个 iframe 标签,并将它们全部替换为新的 div,并在此过程中删除父内容,以便新的 div 将成为唯一的子元素:

<div id="parent">
   <p>this is parent content</p>
   <iframe src="http://www.example.com" id="iframe10"></iframe>
</div>

结果应该是:

<div id="parent">
   <div id="newdiv">this is new div</div>
</div>

这是我循环页面上所有 iframe 的代码,问题是我不明白如何访问每个 iframe 父级并删除其内容:

        var i, frames;
        frames = document.getElementsByTagName("iframe");
        for (i = 0; i < frames.length; ++i)
        {           
            frame_id = frames[i].id;
        }

谢谢 谢

最佳答案

你可以这样写:

function remove_frames() {
  var i = 0;
  var frames = document.getElementsByTagName("iframe");
  while (frames.length > 0) {
    var f = frames[0];
    var p = f.parentElement;
    if (p) {
      while (p.children.length > 0) {
        p.children[0].remove();
      }
      p.innerHTML = "<div id=\"newdiv" + i + "\">this is new div" + i + "</div>";
      i++; //increase id index
      //p.appendChild(
    }
  }
}
  <p><input type="button" value="Execute" onclick="remove_frames()" /></p>

  <div id="parent">
    <p>this is parent content</p>
    <iframe src="http://www.example.com" id="iframe10"></iframe>
  </div>

  <p style="color:#6595ee">This element does not contain any sibling IFrame and must be exist in final result!</p>

  <div id="parent2">
    <p>this is parent2 content...</p>
    <div>another element</div>
    <iframe src="http://www.example.com" id="iframe20"></iframe>
    <p>another element after iframe.</p>
  </div>

关于Javascript 替换父级 html(删除子级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050330/

相关文章:

javascript - 如何使用 VBA 在 IE 上使用 Java 类型按钮

javascript - AJAX 跨域安全背后的基本原理是什么?

javascript - Node.js 中的 "Autoconfig"和 "Daemon"任务

javascript - 是否可以在 onclick 中获取 href?

javascript - 如何在 MVC 中找到哪些复选框被选中并将其传递给 ActionResult?

javascript - 为什么我的计时码总是返回0?

javascript - AngularJS 如何在服务和 Controller 之间设置双向数据绑定(bind)

javascript - 如何区分鼠标滚动和通过在 javascript/jQuery 中拖动窗口的滚动来完成滚动

javascript - 试图理解这意味着什么 : re=/([^=&]+)(=([^&]*))?/g

javascript - 使用 ng-if 时 $scope 不会更新