将ID添加到动态创建的元素中

时间:2014-03-26 19:39:38

标签: javascript html dom

我正在尝试为使用javascripts' document.createElement()方法动态创建的元素添加id。基本上我想在我的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。问题是,它不起作用。

因此,如果有人知道这里有什么问题,或者做我想做的事情的其他方式,请随意表达自己。非常感谢!

2 个答案:

答案 0 :(得分:1)

只需将属性(id是属性)添加到该元素directly,如下所示:

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

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

您当前的方法无效,因为document.getElementsByTagName("iframe")会返回一系列元素 - NodeListHTMLCollectionbrowser-dependant)。虽然您可以为其id属性分配值,但它不会按您的意思行事。为了使其有效,您可以这样调整:

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

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

答案 1 :(得分:0)

newIFrame.setAttribute("id", "something");