Postal Search APIs & Solutions
Postal Search APIs & Solutions
  • チュートリアル
  • ダイジェスト
  • リファレンス
  • デモ
  • テスト
  • 構築キット
  • with Gadgets
  • with jQuery
  • with Microformats
  • よくある質問
  • お問い合わせ
  • 利用規約
  • フォーラム
  • ブログ
Design by
Studio7designs
opensourcetemplates.org
ホーム > Postal Search Ajax API with jQuery

jTemplates を使ってテンプレートから HTML の貼り付けコードを作成する

jTemplates は、テンプレートから HTML を生成するためのテンプレートエンジンです。jTemplates は jQuery プラグインという形式で提供され、jQuery の特性を活かした使い方ができるのが特徴です。

一般的に jQuery を使うなかで、テンプレートエンジンが必要となるケースは少ないという印象があります。が、旧バージョンの The geo microformat 生成ツール を開発したとき、jQuery を使った DOM 操作よりも、テンプレートの文字列から HTML を生成する方が、目的に適う場合もあったので、その事例を紹介します。

次のように、The geo microformat 生成ツールは、JavaScript を使って HTML を生成し、その HTML を貼り付けコードとして表示します。

BLOGRANGER TG tube

jQuery は DOM 操作を得意としますが、このような HTML の文字列を生成するのは不得意です。Element.innerHTML を使って HTML の文字列を生成するのがもっとも簡単なのですが、ブラウザによって Element.innerHTML の結果が異なる ため、HTML の貼り付けコードとしての用途には適しません。

そこで jTemplates の出番ということになります。The geo microformat 生成ツールは、jTemplates を使って HTML の貼り付けコードを生成しています。そのソースコードは、次のとおりです。

  // simple1
  function simple1(label, x, y) {
    var template = 
      '<span class="geo">' +
      '<span class="latitude">{$T.y}</span>, ' +
      '<span class="longitude">{$T.x}</span>' +
      '</span>';
    return $.createTemplate(template)
      .get({label: label, x: x, y: y }, {}, window);
  }

jTemplates は、たくさんのメソッドがあり、様々な使い方ができるのですが、ここではもっとも基本的なメソッドを使っています。なので、jQuery の特徴を活かしていない実例になっています。

使い方は見てのとおりです。createTemplate メソッドを使って、テンプレートの文字列から Template を生成します。そして、get メソッドを使って、その Template にパラメータを適用し、HTML の文字列を取得するという流れです。get(data, param, element) メソッドの 3つの引数は、次のように使います。

data

テンプレートに適用するパラメータを表すオブジェクトです。テンプレートの中では "$T" で参照し、その値は HTML エスケープされます。なお、テンプレートの中で $T の関数も呼び出すこともできます。

HTML エスケープの有無と、関数呼び出しの有無は、オプションで変更できます。また、初期値は無効ですが、data の関数を参照するだけで、その関数を呼び出すというオプションもあります。これは "$T.foo.toUpperCase" のように括弧を省略して関数を実行できることを意味します(のようです)。

param

テンプレートに適用するパラメータを表すオブジェクトです。テンプレートの中では "$P" で参照し、その値は HTML エスケープされません。なお、テンプレートの中で $P の関数は呼び出せません(ようです)。

HTML エスケープの有無は、オプションで変更できます。

element

テンプレートのコンテキストを表すオブジェクトです。テンプレートの中では "$Q" で参照します。なぜか $Q.version プロパティを追加(上書き)します。

関連情報

  • 郵便番号から住所を検索する #1
  • 郵便番号から住所を検索する #2
  • 送信フォームの入力形式を郵便番号に制限する
  • 住所の単語から郵便番号を検索する
  • 住所の単語から郵便番号を検索してその住所を表示する
  • 住所の単語から住所の候補をサジェスト表示する #1
  • 住所の単語から住所の候補をサジェスト表示する #2
  • 住所の単語から住所の候補をサジェスト表示する #3
  • 郵便番号から住所を検索する jQuery lookup プラグイン
  • 住所の単語から郵便番号を検索する jQuery coder プラグイン
  • 指定した処理の実行を後回しにする jQuery later プラグイン
fixedUI プラグイン
  • 画面の下からフィードバックフォームをスライド表示して固定する
jTemplates
  • jTemplates を使ってテンプレートから HTML の貼り付けコードを作成する
Cycle Plugin
  • cycle プラグインとフォートラベル API で旅行写真をシャッフル表示する
Flash Plugin
  • Flash Plugin を使って Youtube の動画を再生する
tablesorter
  • 指定した条件でテーブルの行を並び替える
  • 選択ボックスで指定した列でテーブルの行を並び替える
  • HTML 要素を含む列でテーブルの行を並び替える
  • 並び替えできるテーブルであることをリンクで伝える方法
  • 現在の位置をページ単位でなく行単位で表示する方法
Interface Elements
  • Interface Elements の Carousel とフォートラベル API で旅行写真の 3D ギャラリーを作る
  • Interface Elements の Imagebox とフォートラベル API で旅行写真のギャラリーを作る
  • Interface Elements の Slider で郵便番号を入力してみたが・・・
  • Interface Elements の Slider で旅行写真を拡大(または縮小)表示する
  • Interface Elements の Tooltips をいろいろな要素で使ってみた
  • Interface Elements の Scrollto でページ内リンクをスムースにする
  • Interface Elements の Carousel と YouTube Data API で動画のサムネイルを回転表示する
Selectors
  • セレクタでカンマを使って異なる要素の OR をとる
  • Web ブラウザに依存したコードを書き分ける jQuery Browser Selector プラグイン #1
  • Web ブラウザに依存したコードを書き分ける jQuery Browser Selector プラグイン #2
Events
  • 指定した処理をキューに追加して後でまとめて実行する jQuery Delay プラグイン
DOM Manipulation
  • ページから自ページのリンクを削除してユーザビリティを改善する
  • メソッドチェーンを途切ることなく HTML タグを組み立てる jQuery Tag プラグイン
  • 指定した URL からそのサイトのファビコンを表示する jQuery Favicon プラグイン
AJAX
  • コールバックのイベントハンドリングを容易にする jQuery JSONP プラグイン
Forms with Functions
  • 入力ボックスに郵便番号のマスクを適用する #1
  • 入力ボックスに郵便番号のマスクを適用する #2
  • 検索ボックスでカチカチとキーワード入力を再生する jQuery oogo プラグイン
Using with Other Libraries
  • jQuery のグローバルオブジェクトとオブジェクト書き換えの範囲
  • Prototype $$ メソッドを jQuery Selector で置き換えてみる
Books
  • Learning jQuery: Better Interaction Design and Web Development with Simple Javascript Techniques
  • jQuery Reference Guide: A Comprehensive Exploration of the Popular JavaScript Library
  • jQuery in Action
  • jQuery で作る Ajax アプリケーション
  • 実践! Ajax フレームワーク jQuery
Learning jQuery: Better Interaction Design and Web Development with Simple Javascript Techniques jQuery Reference Guide: A Comprehensive Exploration of the Popular JavaScript Library jQuery in Action jQueryで作る Ajaxアプリケーション 実践!Ajaxフレームワーク jQuery
Resources
  • jQuery のロゴやボタンがいろいろあります
Copyright© 2007 LEARNING RESOURCE LAB and the Postal Search APIs & Solutions team.