If a DOM Node object is a Text object : DOM Content « Development « JavaScript DHTML

If a DOM Node object is a Text object

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 a string of text: i.e., if the node is a Text object.  If
// so, it returns the length of the string.  If not, it recursively
// calls itself on each of the children of the node and adds up the
// total length of the text it finds.  Note that it enumerates the
// children of a node using the firstChild and nextSibling properties.
// Note that the function does not recurse when it finds a Text node
// because Text nodes never have children.
function countCharacters(n) {               // n is a Node 
    if (n.nodeType == 3 /*Node.TEXT_NODE*/) // Check if n is a Text object
        return n.length;                    // If so, return its length.
    // Otherwise, n may have children whose characters we need to count
    var numchars = 0;  // Used to hold total characters of the children
    // Instead of using the childNodes property, this loop examines the
    // children of n using the firstChild and nextSibling properties.
    for(var m = n.firstChild; m != null; m = m.nextSibling) {
  numchars += countCharacters(m); // Add up total characters found
    return numchars;                    // Return total characters
  The onload event handler is an example of how the countCharacters()
  function might be used.  Note that we only want to count the
  characters in the <body> of the document, so we pass document.body
  to the function.
<body onload="alert('Document length: ' + countCharacters(document.body))">
This is a sample document.<p>How long is it?


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.Check DOM Node object whether represents an HTML tag
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