1

を使用して新しい HTML 要素を作成し、document.createElementそれを DOM に追加していない場合、それを見つける方法はありますか? これは のメソッドdocumentなので、 のプロパティになる可能性があるのはやや論理的に思えますdocument

例:

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

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

上記の例が機能しない理由を理解しています。代替手段はありますか?

4

2 に答える 2

3

DOM に挿入せずに、いくつかの要素を作成しているだけです。

それらの数を知りたい場合は、それらを保存する必要があります。

var myElements = []:
var elem = document.createElement("a");
myElements.push(elem);
myElements.length; // use their length for your needs
于 2013-08-07T13:53:55.507 に答える
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") );
}

注: これらのリンク要素を追加するすべての関数で、配列の更新を削除することを忘れないでください。

それが役立つことを願っています。

于 2013-08-07T14:00:06.683 に答える