Nothing wrong with regex. Note that the expression you have will catch all Caps and Numbers - so something like "Go Here" will have the G and H in the spans.
A better pattern might be /^([A-Za-z0-9])/g -- this will match the first character of the link, but only if it is a sensible character (ie, alphanumeric). ie: $(document).ready(function() { $("#Nav li a").each(function() { var text = $(this).html(); $(this).html(text.replace(/^([A-Za-z0-9])/g,'<span class="caps"> $1</span>')); }); }); If you really don't want regex, you could do this: $(document).ready(function() { $("#Nav li a").each(function() { var text = $(this).html(); var first = $('<span>'+text.charAt(0)+'</ span>').addClass('caps'); $(this).html(text.substring(1)).prepend(first); }); }); On Jun 11, 8:00 am, 703designs <[EMAIL PROTECTED]> wrote: > Here's what I've come up with based on one response in this Mailing > List, although I think that it's a bit messy. I have a natural regex > aversion... > > $(document).ready(function() { > $("#Nav li a").each(function() { > var text = $(this).html(); > $(this).html(text.replace(/([A-Z0-9])/g,'<span > class="caps">$1</ > span>')); > }); > > }); > > On Jun 10, 3:39 pm, 703designs <[EMAIL PROTECTED]> wrote: > > > > > I want to add a class to the first letter of every link in a page's > > navigation. Here's what I have now, but I'm missing a way to actually > > grab the first letter. This script would add the "caps" class to the > > whole link, and I only need the letter. The reason for this is that > > the links are using "font-variant: small-caps", and it doesn't make > > letters that are actually capitalized large enough to be noticeably > > different from their small-caps counterparts. > > > $(document).ready(function() { > > $("#nav li a").each(function() { > > this.addClass("caps"); > > }); > > > });- Hide quoted text - > > - Show quoted text -