A quick plugin that I think will work for you: $.fn.orphans = function(){ var ret = []; this.each(function(){$.each(this.childNodes, function() {if (this.nodeType == 3) ret.push(this)})}); return $(ret); }
You may want to test for empty text nodes though; change the if clause to (this.nodeType == 3 && $.trim(this.nodeValue)) Danny On Aug 28, 2:30 pm, Steven Black <[EMAIL PROTECTED]> wrote: > I develop and host wikis where users enter free-form text, and my > server-side parsers create WISIWYG HTML from this. > > Of course, users can, and do, submit almost anything, and on the > server-side I do a pretty good job of marking it up properly. But > addressing edge-cases makes the server-side parsing increasingly > heavy. > > One such edge case is islands of text that are not in any tag other > than the global containing DIV. Like this: > > <div class="container"> > <h3>I am text within a tag</h3> > I am a text island child of the "container" div wrapper. <--- My > edge case > <p>I am also text within a tag</p> > </div> > > QUESTION: Using jQuery, how would you select orphan text inside a DIV > in order to $.wrap() it, say, in a "<p>" tag? > > I'm thinking I could ask the client browsers to address some of these > edge-cases for me. > > Ideas? Something like $ > (".container").textFragmentsNotInsideAnyOtherTag() > > **--** Steve