javascript - 使用 JavaScript (appendChild) 向 DOM 添加新元素

标签 javascript dom

我有时需要向现有 HTML 页面添加元素(例如新链接和图像),但我只能访问页面中远离我需要插入元素的地方的一小部分。我想使用基于 DOM 的 JavaScript 技术,我必须避免使用 document.write()。

到目前为止,我一直在使用这样的东西:

//  Create new image element
var newImg = document.createElement("img");
  newImg.src = "images/button.jpg";
  newImg.height = "50";
  newImg.width = "150";
  newImg.alt = "Click Me";
//  Create new link element
var newLink = document.createElement("a");
  newLink.href = "/dir/signup.html";
//  Append new image into new link
newLink.appendChild(newImg);
//  Append new link (with image) into its destination on the page
document.getElementById("newLinkDestination").appendChild(newLink);

我可以使用更有效的方法来完成同样的事情吗?这一切似乎都是必要的,但我想知道是否有更好的方法可以做到这一点。

最佳答案

有一种更有效的方法,并且似乎尽可能使用 documentFragments。 查看:http://ejohn.org/blog/dom-documentfragments/ .此外,与开始混合巨大的字符串文字并将它们设置为一些其他 DOM 对象的 innerHTML 相比,这种方式应该更不容易出错并且更易于维护。

关于javascript - 使用 JavaScript (appendChild) 向 DOM 添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2962137/

相关文章:

javascript - 如何在页面加载时查找正在作用于 DOM 元素的 javascript

javascript - 如何在 THREE.js 中将自定义着色器应用于 Sprite

javascript - 如何创建 iframe 的 Bootstrap 轮播?

javascript - 在 Javascript 中找到距离半圆中心 n% 的点?

javascript - 尝试获取超链接列表项 SharePoint 2016 REST API

Javascript 窗口对象

javascript - 遍历 DOM 以根据每个 anchor 显示单独的内容

javascript - 如何使 getElementsbyName 适用于 IE(和 FF)?

JavaScript:操作样式表的文本

javascript - three.js 双视口(viewport)只有一个显示