views:

16

answers:

1

Hi, I'm trying to dynamically add a span to an ol, where the counter should be in letters. eg: A result B result C result etc etc

I've got this code which is great for using numbers but I've no idea what to do to it to make the numbers into letters

jQuery(document).ready( function() {
    jQuery('.results ol').each(function () {
       jQuery(this).find('li').each(function (i) {
           i = i+1;
           jQuery(this).prepend('<span class="marker">' + i + '</span>');
       });
    });
});

Any help is greatly appreciated!

+2  A: 

Use the HTML codes:

Lower Case:

jQuery(document).ready( function() {
     jQuery('.results ol').each(function() {
       jQuery(this).find('li').each(function(i) {
           jQuery(this).prepend('<span class="marker">&#' + (i+97) + ';</span>');
       });
    });
})

Upper Case:

jQuery(document).ready( function() {
     jQuery('.results ol').each(function() {
       jQuery(this).find('li').each(function(i) {
           i = i+1;
           jQuery(this).prepend('<span class="marker">&#' + (i+65) + ';</span>');
       });
    });
})

Of course you'll run out of letters if you have more than 26 results.

fudgey
nice one. beat me to it.
Bradley Mountford
AWESOME! Thanks heaps
jquery n00b
You're welcome! By the way, will you need to mark more than 26 results? Also just curious why you aren't just using CSS? `.results ol li { list-style-type: upper-alpha }` or `.results ol li { list-style-type: lower-alpha }`
fudgey