javascript - 向动态创建的元素添加 id

标签 javascript html dom

我正在尝试将 id 添加到使用 javascript 的 document.createElement() 方法动态创建的元素。基本上我想在我的 html 文档中创建一个 iframe,同时为新创建的元素提供一个 id。

这是到目前为止我的代码。我已经弄清楚如何将元素放入 DOM 中以及所有这些,我只需要 id。

function build(content){
      var newIframe = document.createElement("iframe");

      var newContent = document.createTextNode("Hello World!");

      newIframe.appendChild(newContent);

      var element = document.getElementById("container");
      document.body.insertBefore(newIframe, element);

      document.getElementsByTagName("iframe").id = "active";
    };

正如你可能看到的,我试图在最后给它一个 id。问题是,它不起作用。

因此,如果有人知道这里出了什么问题,或者有其他方法可以完成我想做的事情,请随时表达自己的想法。非常感谢!

最佳答案

只需向该元素添加一个属性(id 是一个属性)directly ,像这样:

var newIframe = document.createElement("iframe");
newIframe.id = 'active';

...虽然 id 等于 active 看起来很奇怪(对于唯一标识符来说太通用了)。

您当前的方法不起作用,因为 document.getElementsByTagName("iframe") 返回元素集合 - NodeListHTMLCollection (它是 browser-dependant )。虽然您可以为其 id 属性分配一个值,但它不会执行您想要的操作。要使其正常工作,您可以这样调整:

document.getElementsByTagName("iframe")[0].id = "active";

...但是,如上所示,有更好的方法。

关于javascript - 向动态创建的元素添加 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671405/

相关文章:

javascript - 单击按钮获取变量输入值

javascript - 从 JQuery 中动态创建的数据获取点击事件

javascript - 我可以在express中编写app.get来动态获取吗?

javascript - 如何使 HTML 元素在悬停时扩展并覆盖同一 flex 容器中的相似相邻元素而不移动它们?

flash - html5 vs flash - 任何地方的完整比较图表?

reactjs - 我可以通过函数组件传递 ref 吗?

javascript - 在对象实例化期间扩展 javascript 对象

java - 如何将 html 注释添加到 jsoup 注释中

javascript - 在 Google Chrome 上使用 jQuery 加载窗口比 DOM 先加载

javascript - Prototype 奇怪的支持环境检查