И TextNode.each для любителей if-else:
var TextNode = {
each: function(callback, parent) {
for (var childNodes = (parent || document.body).childNodes, i = 0; i < childNodes.length; i++) {
var I = childNodes[i];
if (I.nodeType == 1) arguments.callee(callback, I);
else if (I.nodeType == 3) callback(I, i);
}
}
};