I've solved this same problem in the past with the wrapText plugin, by
George Adamson:

// Plugin to wrap html around all non-empty text nodes within an element:
(ignores text in child elements)
// By George Adamson, SoftwareUnity.com, March 2007.
$.fn.wrapText = function(html){
    return this.each(function(){
        $(this.childNodes).filter("[EMAIL PROTECTED]").each(function(){
            if($.trim(this.nodeValue).length > 0)
                $(this).wrap(html);
        })
    });
};

- Richard

On Nov 2, 2007 7:48 PM, Wizzud <[EMAIL PROTECTED]> wrote:

>
> _IF_ you only have text in your LIs then...
>
> $('li').each(function(){
>  alert($(this).html().match(/^([^<]*)/)[0]);
> });
>
>
> On Nov 2, 5:35 pm, "Jonathan Sharp" <[EMAIL PROTECTED]> wrote:
> > I'm sure there's a more elegant solution but you could do something
> like:
> >
> > // Untested
> > var about = $( 'selector for the li' ).clone().find('>
> > ul').remove().end().html();
> >
> > Cheers,
> > -Jonathan
> >
> > On 11/2/07, sawmac <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > > I'm trying to select text inside list items. I'm using
> > > jQuery's .text( ) method. Unfortunately, that returns the text of all
> > > children as well. That means for a nested list like this
> >
> > > <ul>
> > > <li>index.html</li>
> > > <li>about
> > >    <ul>
> > >      <li>index.html</li>
> > >      <li>more.html</li>
> > >    </ul>
> > > </li>
> > > </ul>
> >
> > > $('li').eq(1).text() returns
> > > 'about
> > >   index.html
> > >   more.html'
> >
> > > I just want to retrieve "about" not the text from the child list
> > > items. Any ideas on how to do that?
> >
> > > thanks
>
>

Reply via email to