Could you do something like this?

$(this).children().length < 1 ? text = $(this).text() : text = $
(this).children(':last-child').text();

Cheers,

Oliver

On Jun 21, 5:06 pm, Jack Killpatrick <[EMAIL PROTECTED]> wrote:
> Hi All,
>
> Wondering if anyone can help me out with this...
>
> I have a list like this and want to select the "innermost" text from
> each LI:
>
> <li>Item One</li>
> <li><a href="yadda">Item Two</a></li>
> <li><div class="something"><a href="ya">Item Three</a></div></li>
> <li><a href="ya">Item Four</a></li>
> <li>Item Five</li>
>
> I want to be able to perform an operation using each result (the results
> being "Item One", "Item Two", "Item Three", "Item Four", "Item Five").
> If the LI's all have an <a> tag inside of them, I've found that this works:
>
> var text;
> $('#myList li').each(function(){
>    text = $('*',this).html();
>    // do something using the text
>
> });
>
> But that only works for cases Two and Four in my example above (not the
> cases where the text is bare inside the LI or there's an additional
> wrapper in the LI. I'm thinking I'll need to do something recursively
> using the content of each LI or maybe there are some existing jquery
> selectors that can do what I'm looking for.
>
> Any ideas?
>
> Oh, if this got a little more fancy (or was easier to do), if we had a
> case like this, it would get only the "first" text it came across ("Item
> Six"):
>
> <li>Item Six<div class="something"><a href="ya">Some text</a></div></li>
>
> Thanks,
> Jack

Reply via email to