Обычно и делают через nodeName и .lowercase() на всякий случай. Или в ишаке и nodeName нету?
upd, вот такой есть каноничный кусок
getTextNode: function(node) {
var next;
var res = null;
if (node.nodeType === 1) {
if (node = node.firstChild) {
do {
next = node.nextSibling;
res = this.getTextNode(node);
if(res) return res;
} while(node = next);
}
} else if (node.nodeType === 3) {
if (/\S/.test(node.nodeValue)) {
return node;
}
}
},