DOMに於いて、指定された要素名の下位要素の配列を与えるgetElementsByTagName()メソッドの解説です。
getElementsByTagName()メソッドとは、指定された要素名の子孫要素の配列を与えるメソッドです。
但し、直下の子要素のみならず、孫以下の下位要素も集めてきますので注意してください(後述)。
getElementsByTagName()メソッドは
に依って実装されます。
従って、文書ノードまたは要素ノードに対してのみgetElementsByTagName()メソッドを用いる事が出来ます。
getElementsByTagName()メソッドは以下の一つの引数を取ります。
*を指定した場合は、全ての要素となります。getElementsByTagName()メソッドの返し値は、該当する要素ノードが文書内に於ける順番に従って並べられたノードの配列です。
ある要素ノード e 内に於いて、href属性値が http:// で始まる全ての<a>要素の末尾に、<img>要素ノード im を追加する例です。
im=document.createElement('img');im.setAttribute('src', '/image/icons/extenalSite.GIF');im.setAttribute('alt', '(※外部サイト)');im.setAttribute('width', '16');im.setAttribute('heigth', '16');var e1=e.getElementsByTagName('a');var i=e1.length;while (--i>=0) {if (e1[i].getAttribute('href').indexOf('http://')!=0) continue;e1[i].appendChild(im.cloneNode(true));}
getElementsByTagName()メソッドで与えられるのは子孫要素です。
つまり、「直下の○○要素だけ抽出したい」と言う場合には使えません。
このような場合には、childNodesプロパティで直下のノードを集めて、nodeTypeプロパティとnodeNameプロパティまたはtagNameプロパティを用いて一つずつ希望の要素名のものだけを抽出するようにします。
Copyright ©平成21年-平成24年 さいたま・しらぎくさいと 版権所有
marguerite.site@gmail.com