如果我使用document.createElement
创建一个新的HTML元素,但是我没有将它添加到DOM中,有没有办法找到它?由于这是document
的方法,因此它可能成为document
的属性似乎有些合乎逻辑。
示例:
(function(){
document.createElement("a");
})();
console.log(document.getElementsByTagName("a").length); // -> 0
我理解为什么上面的例子不起作用。还有其他选择吗?
答案 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") );
}
注意:请记住在添加这些链接元素的所有函数中删除更新数组。
希望有所帮助。