Methods


getElementsByTagName Method

Retrieves a collection of objects based on the specified element name.

Syntax

collObjects = object.getElementsByTagName(sTagName)

Parameters

sTagName Required. String that specifies the name of an element.

Return Value

Returns a collection of objects with the specified element name.

Remarks

The getElementsByTagName method is equivalent to using the tags method on the all collection. For example, the following code shows how to retrieve a collection of div elements from the body element, first using the Dynamic HTML (DHTML) Object Model and then the Document Object Model (DOM).

  • Using the DHTML Object Model:
    var aDivs = document.body.all.tags("DIV");
  • Using the DOM:
    var aDivs = document.body.getElementsByTagName("DIV");

When you use the getElementsByTagName method, all child and nested child elements with the specified tag name are returned. For example, all of the SPAN elements in the following example would be returned by the getElementsByTagName method.


<SCRIPT>
var aSpans = oDiv.getElementsByTagName("SPAN");
</SCRIPT>
<DIV id="oDiv">
    <SPAN>Immediate Child
        <DIV>
            <SPAN>Child of Child DIV</SPAN>
        </DIV>
    </SPAN>
</DIV>

Example

The following example uses the getElementsByTagName method to return the children of a ul element based on the selected li element.

<SCRIPT>
function fnGetTags(){
   var oWorkItem=event.srcElement;
   var aReturn=oWorkItem.parentElement.getElementsByTagName("LI");
   alert("Length: "
      + aReturn.length
      + "\nFirst Item: "
      + aReturn[0].childNodes[0].nodeValue);
}
</SCRIPT>
<UL onclick="fnGetTags()">
<LI>Item 1
   <UL>
      <LI>Sub Item 1.1
      <OL>
         <LI>Super Sub Item 1.1
         <LI>Super Sub Item 1.2
      </OL>
      <LI>Sub Item 1.2
      <LI>Sub Item 1.3
   </UL>		
<LI>Item 2
   <UL>
      <LI>Sub Item 2.1
      <LI>Sub Item 2.3
   </UL>
<LI>Item 3
</UL>
This feature requires Microsoft Internet Explorer 5 or later. Click the following icon to install the latest version. Then reload this page to view the sample.

Standards Information

This method is defined in World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1 World Wide Web link.

Applies To

A, ABBR, ACRONYM, ADDRESS, APPLET, AREA, B, BASE, BASEFONT, BDO, BGSOUND, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, CENTER, CITE, CODE, COL, COLGROUP, CUSTOM, DD, DEL, DFN, DIR, DIV, DL, document, DT, EM, EMBED, FIELDSET, FONT, FORM, FRAME, FRAMESET, HEAD, hn, HR, HTML, I, IFRAME, IMG, INS, KBD, LABEL, LEGEND, LI, LINK, LISTING, MAP, MARQUEE, MENU, OL, P, PLAINTEXT, PRE, Q, S, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, U, UL, VAR, XMP, Element Constructor, HTMLDocument Constructor

See Also

About the W3C Document Object Model
Tags :


Community Content

John Sudds
missing element in getElementsByName bug

The IE7 bug does not allow to safely use this method: in returned result, one element is missing.

Test case: dynamically create 1000 same custom tags

<customtag><A name="same4all">aa</a></customtag>

the getElementsByName gave 1000 as expected, document.getElementsByTagName and document.all.tags returns 999 elements.

testcase:

http://simulationlabs.com/test/NavigationTest.html

----

[jsudds.msft] Thanks for the report. I'll make sure the product team knows about it. Fortunately, this behavior is limited to custom tags only; getElementsByTagName works as expected for built-in elements such as the A tag.

Tags : dhtml

John Sudds
Wildcard '*' is allowed
To return all descendant elements, specify an asterisk (*) as sTagName. The resulting array will contain only elements and no text nodes.
Tags : dhtml

ZeroWorks
Unexpected results

In IE7 when calling this method for INPUT tags and one of the child nodes has as a value 'length' in the name attribute. The method returned an empty collection with no error.

I tried it with a DIV element that contained nested INPUT in table cells. I solved this behaviour changing the name attribute value to another. I not tested with other values nor tried to replicate this error.


yecril
Weird results with OBJECT and LABEL
anObj.getElementsByTagName("PARAM") is defined when anObj refers to an OBJECT element or a LABEL element containing one but the result is strange, like executing on behalf of the document node. The results are incorrect.
Tags :

Page view tracker