Result
正規表現で英数字のみ対応させているので日本語はこのコードでは対応できない。Lettering.jsなら可能。
jQuery
//foo内からテキストを正規表現で探して1つずつspanで囲む $('.foo').children().andSelf().contents().each(function() { if (this.nodeType == 3) { $(this).replaceWith($(this).text().replace(/(\w)/g, "<span class='char'>$&</span>")); } }); $('.foo').each(function() { //span要素に番号付きのclassを与える $('span.char', this).each(function(i) { i = i+1; $(this).addClass('char' + i); }); });
css
.foo span{display:inline-block;} .foo .char1 {color:red;} .foo .char2 {color:green;} .foo .char3 {color:blue;} .foo .char4 {color:yellow;} .foo .char5 {color:orange;} .foo .char6 {color:yellowgreen; padding-left:5px;} .foo .char7 {color:cyan; padding-left:5px;} .foo .char8 {color:gold; padding-left:5px;} .foo .char9 {color:pink; padding-left:5px;} .foo .char10 {color:magenta; padding-left:5px;}
html
<h2 class="foo">kachibito</h2>
via
via:http://hompimpaalaihumgambreng.blogspot.jp/2012/04/letteringjs-sederhana.html