ラベル javascript の投稿を表示しています。 すべての投稿を表示
ラベル javascript の投稿を表示しています。 すべての投稿を表示

2011年3月3日木曜日

jQuery Templates plugin(jquery-tmpl)で{{if}}を使ってみた

jQueryのテンプレートプラグイン「jQuery Templates Plugin (jquery-tmpl)」で{{if}}を使ってみました。

書式

{{if fieldNameOrExpression}} content {{/if}}
'fieldNameOrExpression'は、データアイテムの名前、Javascriptの関数や式を評価します。


値があれば、タグの中身を表示する
//json
{[
    {title:'Title1', description:'Description'},
    {title:'Title2'}
]}

//tmpl
<p>{{if description}} ${title} {{/if}}</p>

//result
<p>Title1</p>

値の内容が1件以上であれば、タグの中身を表示する
lengthは、tmplデータアイテム名+'.length'で求められ1つ以上でTRUEになります。
//json
{[
    {title:'Title1', options:['opt1','opt2']},
    {title:'Title2', options:[]}
]}

//tmpl
<p> ${title}{{if options.length}} has options{{/if}}</p>

//result
<p>Title1 has options</p>
<p>Title2</p>


比較演算子で評価
通常のjavascriptでのif式のように評価します。
通常と違い、tmplデータアイテム名はコーテーションで囲まず(上記例と同様)に使用するようです。
//json
{[
    {title:'Title1', type:'hidden'},
    {title:'Title2', type:'show'}
]}

//tmpl
<p>{{if type == 'show'}}${title}{{/if}}</p>

//result
<p>Title1</p>

javascriptで簡単に数値かどうか確認(Numeric)

javascriptで変数を数値かどうか確認したくなりました。

簡単に。

整数値の場合
関数parseInt(文字列の引数をパースし、指定された基数の整数を返す)を用いてチェックします。
var num = チェックする変数
if ( num == parseInt(num)){
    // 整数値
} else {
    // 整数値でない
}

浮動少数(少数点以下を含む)値の場合
関数parseFloat(文字列の引数をパースし、浮動小数点数を返す)を用いてチェックします。
var num = チェックする変数
if ( num == parseFloat(num)){
    // 数値
} else {
    // 数値でない
}

2011年2月17日木曜日

javascriptでキャピタライズ(一文字目を大文字にする)

一文字目だけを大文字にする


toUpperCaseを使って
String.prototype.capitalizeFirstLetter = function(){
 return this.charAt(0).toUpperCase() + this.slice(1);
};

replaceを使って
String.prototype.capitalizeFirstLetter = function(){
 return this.replace(/^\w/, function($0) { return $0.toUpperCase();});
};

動作例
var str = 'test strings';
alert(str.capitalizeFirstLetter());
// Test string

単語の先頭を大文字化する

String.prototype.capitalize = function(){
 return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
};

動作例
var str = 'test strings';
alert(str.capitalize());
// Test String

2011年2月14日月曜日

jQuery Templates plugin(jquery-tmpl)を使ってみる

jQuery1.5でコア組み込まれるかと思っていた、テンプレートエンジン「jQuery Templates Plugin」を使ってみました。(組み込まれていると思って書いて、"has no method 'tmpl'"ってエラーがでてやっと気がついた)


使用するには、プラグインファイルを読み込みます。
jquery v1.4.2以上が必要です。


ファイルの読み込み


Microsoft CDNから読み込んでみる場合
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.5.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js">


参考サイト



使用メモ


繰り返しタグ{{each}}{{/each}}の2重構造でも動いた

{{each 配列名}}でjsonデータに同名の配列があり、lengthが2以上だったら、自動的にループするのですが、配列の中に配列がある構造でも問題なく動作(ループ)しました。すばらしい。
//tmpl
{{each categories}}
<h2>${categoryName}</h2>
 <ul>
  {{each lists}}
   <li><a href="#${url}">${name}</a></li>
  {{/each}} 
 </ul>
{{/each}}

//json
 {
 "categories" : [
  { "categoryName" : "category1", "lists" : [
   { "name" : "sample1", "url" : "http://url1.sample/"},
   { "name" : "sample2", "url"  : "http://url2.sample/"}
  ]},
  { "categoryName" : "category2", "lists" : [
   { "name" : "sample3", "url" : "http://url3.sample/"},
   { "name" : "sample4", "url" : "http://url4.sample/"}
  ]}
 ]
}

2011年2月7日月曜日

bloggerにSyntaxHighlighterをインストールする

技術メモなのでシンタックスハイライターは必須ですからして初めにインストールしておきます。

今回インストールするのは、SyntaxHighlighter - Alex Gorbatchevにしました。バージョンは3.0.83です。ファイルのホスティングもしておられるので有り難く使用させていただきます。

Syntax Highlighter

簡単インストール

  1. ダッシュボード > デザイン > HTMLの編集 へ移動
  2. テンプレートをすべてダウンロード
  3. <head>内に以下のソースをコピーしてペースト(テーマとブラシは必要なものを記述。)
  4. テンプレートを保存して、ファイルをアップロードすれば完了

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeRDark.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>

簡単な使い方


<pre />タグを使う

<pre>タグで記述する場合は、<は、&lt;に、>は&gt;エスケープすること。
<pre class="brush: js">
...code
</pre>

<script />タグを使う

<script>タグで記述する場合はエスケープ不要。
コードは<![CDATA[...]]タグで囲む必要がある。
RSSフィード等には反映されないので注意すること。
<script type="syntaxhighlighter" class="brush: js"><![CDATA[
...core
]]></script>

備考

  • バージョン3.0.83からshAutoloader.jsが導入されているが今回は未使用。