var node = startnode; var len = (0-startnode.length) || 0; var prop = next?'nextSibling':'previousSibling'; while(node){ if(node.nodeType!=3){ break; } len += node.length node = node[prop]; } return [node,len];