获取尚未添加到DOM的元素

时间:2013-08-07 13:50:42

标签: javascript

如果我使用document.createElement创建一个新的HTML元素,但是我没有将它添加到DOM中,有没有办法找到它?由于这是document的方法,因此它可能成为document的属性似乎有些合乎逻辑。

示例:

(function(){
    document.createElement("a");
})();

console.log(document.getElementsByTagName("a").length); // -> 0

我理解为什么上面的例子不起作用。还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

你只是创建了一些元素,而没有在DOM中进行操作。

如果你想知道它们有多少,你需要存储它们。

var myElements = []:
var elem = document.createElement("a");
myElements.push(elem);
myElements.length; // use their length for your needs

答案 1 :(得分:1)

如果要在多个不同的函数中创建元素,则需要更新全局数组:

var linkElements = []; //declared in global

function addLinkElements()
{
    var link = document.createElement("a");

    // add link element to global array
    linkElements.push(link);

    // total link elements
    alert( "Total anchors: " + linkElements.length + document.getElementsByTagName("a") );
}

注意:请记住在添加这些链接元素的所有函数中删除更新数组。

希望有所帮助。