[jQuery] Re: Selector: Find the first letter?

2008-06-10 Thread 703designs

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);
 });

 });


[jQuery] Re: Selector: Find the first letter?

2008-06-10 Thread Hamish Campbell

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 -


[jQuery] Re: Selector: Find the first letter?

2008-06-10 Thread Karl Swedberg


You might also want to take a look at my Fancy First Letter plugin:

http://plugins.learningjquery.com/fancyletter/

--Karl

Karl Swedberg
www.englishrules.com
www.learningjquery.com




On Jun 10, 2008, at 6:47 PM, Hamish Campbell wrote:



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 -