Awesome, thanks Karl. Exactly what I was going for. -Nick

On May 5, 9:29 am, Karl Swedberg <k...@englishrules.com> wrote:
> Sorry, I must have misunderstood the context. I was responding to this:
>
> > Don't use .text(), you'll get an array-like object of text nodes
>
> It seemed like you were saying that .text() returns an array-like  
> object. But if it's used as a getter (without an argument), it returns  
> a string. If there is more than one element in the jQuery object, it  
> concatenates the text values. So, given the OP's markup, doing $('div  
> li').text() would return "SymphilisGhonoreahAids". Anyway, I know you  
> already know this. Just trying to clarify for others who are newer.  
> Hope I didn't muddy the water even more.
>
> @nick, Another way to get "Free sex" out of that div is to do this:
>
> $('div')[0].firstChild.nodeValue
>
> That will give you leading and trailing white space, though, so you  
> can use jQuery's trim function to strip it:
>
> $.trim( $('div')[0].firstChild.nodeValue );
>
> You'll have to adjust the selector, too, if that div isn't the first  
> one in your document.
>
> --Karl
>
> ____________
> Karl Swedbergwww.englishrules.comwww.learningjquery.com
>
> On May 4, 2009, at 9:29 PM, mkmanning wrote:
>
>
>
>
>
> > Sorry, maybe my response was somewhat confusing, but I don't believe
> > you'll get a concatenated string (as the OP's followup indicates).
>
> > After using .filter(), you'll get an array-like object (it's still the
> > jQuery object) which contains the text nodes.
> > Calling .text() on those won't actually concatenate them though, as
> > they're text nodes.
>
> > Likewise, if you do $('div').contents().text() you'll only get the
> > text of the UL element, rather than a concatenation of that with the
> > previous text node.
>
> > @nick, you can get the text from the object with text[0].nodeValue.
>
> > HTH :)
>
> > On May 3, 4:08 pm, Karl Swedberg <k...@englishrules.com> wrote:
> >> On May 2, 2009, at 9:28 PM, mkmanning wrote:
>
> >>> Don't use .text(), you'll get an array-like object of text nodes.
>
> >> Tiny clarification: you'll get a concatenated string of text nodes.
>
> >> --Karl
>
> >> ____________
> >> Karl Swedbergwww.englishrules.comwww.learningjquery.com
>
> >> On May 2, 2009, at 9:28 PM, mkmanning wrote:
>
> >>> Don't use .text(), you'll get an array-like object of text nodes.  
> >>> Try
>
> >>> var text = $('div').contents().filter(function(){return
> >>> this.nodeType==3;});
> >>> console.log(text)
>
> >>> On May 2, 6:06 pm, nick <nboutel...@gmail.com> wrote:
> >>>> Thanks for the response. Are you sure thats correct though?
>
> >>>> alert($('div').contents().filter(function(){return
> >>>> this.nodeType==3;}).text());
>
> >>>> returns empty.- Hide quoted text -
>
> - Show quoted text -

Reply via email to