I'm writing this off the top of my head, but it should be at least close to functional.
jQ: $("#id1").children().filter(function(){return $(this).text()!="";}).filter(":eq(0)").text() Or if you intend to use this a lot, you could write a small plugin: (function($){ $.fn.textNode(index){ index = index || 0; return this.children().filter(function(){return $(this).text()!="";}).filter(":eq("+index+")").text(); })(jQuery); jQ: $("#id1").textNode(); //same as $("id1").textNode(0); ~Sean