jquery-ptmplを拡張して、HTMLタグのclass属性を読み書きしやすく指定する
jquery-ptmplでは、内部のほとんどの関数を簡単に置き換えられるようになっています。今日はその一例を紹介します。
<script src="jquery.js"></script> <script src="jquery.ptmpl.js"></script> <script> (function (jQuery, undefined) { var oldPtmplTranslateHtmlToLiteral = jQuery.ptmplTranslateHtmlToLiteral; jQuery.ptmplTranslateHtmlToLiteral = newPtmplTranslateHtmlToLiteral; function newPtmplTranslateHtmlToLiteral(str) { str = str .replace(/<(\w+)\.([\w-.]+)/g, function (all, tag, klass) { return '<'+tag+' class="'+klass.replace(/\./g, ' ')+'"'; }); return oldPtmplTranslateHtmlToLiteral(str); } })(jQuery); </script>
jQuery.ptmplTranslateHtmlToLiteral関数は、テンプレートのコンパイル時にのみ呼び出され、テンプレート中のテンプレートタグ以外の部分(=普通にHTMLが書いてある部分)を文字列リテラルに変換する関数です。
上記のコードでは、例えば