3

特定の div 内の各タグを実行する for ループを持つ関数を作成しています。たとえば、div は次のようになります。

<div>
 <input id="inputid"></input>
 <a id="aid"></a>
 <div id="divid"></div>
</div>

「x の各タグに対して」の種類の関数が JavaScript にあり、それをループできるようになりますか? 上記のように、jquery ではこれを行うことができず、各タグが異なる可能性があることに注意してください。

4

3 に答える 3

7

div 内に含まれるすべての要素 (子の子などを含む) が必要で、(他のタイプのノードではなく) 要素のみが必要で、すべてのブラウザーで動作するようにする場合は、次getElementsByTagName("*")のように使用できます。

var allTags = document.getElementById('container').getElementsByTagName("*");
for (var i = 0, len = allTags.length; i < len; i++) {
    // allTags[i] is an element within the container object
    // allTags[i].id is the id of the element (if there is one)
}

document.getElementById('container')コンテナ要素を取得するための手段にすぎません。コンテナ要素を含む親要素を取得するのに適した任意のメソッドを使用できます。

getElementsByTagName("*")示されているようにワイルドカードを使用できるため、ノード内に含まれるすべての要素を返し、任意の要素で呼び出して、その要素内からのみ要素を取得できます。

于 2012-11-28T08:05:17.840 に答える
1

これを試して:

var div = getElementById('containerDivId');
for (var i = 0; i < div.childNodes.length; i++)
{
    console.log(div.childNodes[i]);
}
于 2012-11-28T08:02:49.597 に答える