Check DOM Node object whether represents an HTML tag : DOM Content « Development « JavaScript DHTML

Check DOM Node object whether represents an HTML tag

Examples From
JavaScript: The Definitive Guide, Fourth Edition

Legal matters: these files were created by David Flanagan, and are
Copyright (c) 2001 by David Flanagan.  You may use, study, modify, and
distribute them for any purpose.  Please note that these examples are
provided "as-is" and come with no warranty of any kind.

David Flanagan
// This function is passed a DOM Node object and checks to see if that node 
// represents an HTML tag: i.e., if the node is an Element object.  It
// recursively calls itself on each of the children of the node, testing
// them in the same way.  It returns the total number of Element objects
// it encounters.  If you invoke this function by passing it the
// Document object, it traverses the entire DOM tree.
function countTags(n) {                        // n is a Node 
    var numtags = 0;                           // Initialize the tag counter
    if (n.nodeType == 1 /*Node.ELEMENT_NODE*/) // Check if n is an Element
        numtags++;                             // Increment the counter if so
    var children = n.childNodes;               // Now get all children of n
    for(var i=0; i < children.length; i++) {   // Loop through the children
        numtags += countTags(children[i]);     // Recurse on each one
    return numtags;                            // Return total number of tags
<!-- Here's an example of how the countTags() function might be used -->
<body onload="alert('This document has ' + countTags(document) + ' tags')">
This is a <i>sample</i> document.

Related examples in the same category

1.Define a NodeFilter function to accept only 'img' elements
2.CSS style sheet a 'window' visual effect
3.If a DOM Node object is a Text object
4.recursively looks at node n and its descendants: replacing with their uppercase equivalents
5.Creating a Table: Using the insertBefore Method with DOM
6.Navigating Documents
7.A DOM Core Document Analyzer
8.Adding/Replacing DOM Content