yeah.. this finds it by classname (.keyword) , I need to be able to
traverse all elements

On Feb 3, 9:39 am, Eric Garside <gars...@gmail.com> wrote:
> Try:
> $(function(){
>    var keywords = [ ... ];
>    $.each(keywords, function(){
>       var kw = this, rx = new RegExp('/^ '+kw+' $/');
>       $(".keyword:contains('"+kw+"')") .each(function(){
>             $(this).text($(this).text().replace(rx, '<span>'+kw+'</
> span>'));
>       });
>    });
>
> });
>
> It's untested, but I think that should work? The Regex is adding
> whitespace to either side of the keyword intentionally, to only catch
> full words (so " the RED fox" gets matched but " was near a REDwood
> tree." does not. Though, I'm not a regexpert, so I'm not positive what
> I've given you is the right way to go there, but hopefully it gives
> you a base to work from.
>
> On Feb 3, 10:20 am, paulinstl <paulsha...@gmail.com> wrote:
>
>
>
> > Rob,
>
> > My problem is that I have no way of knowing where the keyword may
> > appear.  It might be tabular data (<TD>) or in descriptive paragraph
> > (<p>).
>
> > So if my keyword is RED, then...
>
> > BEFORE
> > <p> the red fox </p>
>
> > AFTER
> > <p>the <span>red</span> fox</p>
>
> > I'll have an array of keywords as well. var arrayx["one", "two"
> > "three"]
>
> > On Feb 2, 5:57 pm, RobG <rg...@iinet.net.au> wrote:
>
> > > On Feb 3, 8:01 am, paulinstl <paulsha...@gmail.com> wrote:
>
> > > > I'm looking for a way to locate keywords to help the end user out.
>
> > > > For instance, if I want to find the word "polar" then i'd like my
> > > > function to locate it, wrap it with a span, and assign it a function.
>
> > > > so far I can locate using a content filter and classname like this...
>
> > > > $(".keyword:contains('polar')")
>
> > > > But this selects the whole element (paragraph, div, whatever)
>
> > > > how do i focus in on JUST the text?
>
> > > The most reliable method is to traverse the part of the DOM you want
> > > to search and look at the value of text nodes.  If you want to
> > > highlight a particular character pattern, use a regular expression and
> > > DOM methods to wrap it in a suitable element, say a span.  It would
> > > also be prudent to also put adjacent text in spans too, e.g.
>
> > >   <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</dv>
>
> > > might become:
>
> > >   <div><span>Lorem ipsum </span><span class="foo">dolor</span>
> > >   <span> sit amet, consectetur adipiscing elit.</span></dv>
>
> > > That way you can also deal with text found inside elements like B or
> > > QUOTE if necessary.
>
> > > Other approaches such as using a regular exprssion and an element's
> > > innerHTML property, are likely to be error prone.
>
> > > --
> > > Rob- Hide quoted text -
>
> - Show quoted text -

Reply via email to