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 > DOM Manipulation

メソッドチェーンを途切ることなく HTML タグを組み立てる jQuery Tag プラグイン

jQuery Tag プラグインは jQuery のメソッドチェーンを途切ることなく、HTML タグを組み立てるためのプラグインです。HTML タグの生成と追加をスタックで操作することで、メソッドチェーンを崩さずに HTML タグを組み立て続けることができます。

スタックの操作は jQuery 自体が持つスタックの仕組みを利用しています。jQuery は pushStack メソッドで現在のインスタンスをスタックに積み、end メソッドで直前のインスタンスに戻すことができます。

この特性を利用して、tag メソッドで HTML タグを生成して pushStack メソッドでスタックに積みます。gat メソッドで end メソッドでスタックから戻し、HTML タグを追加します。gat メソッドの名前は tag メソッドを逆に読んだものです。戻すや反対という意味を込めています。

また $.tag メソッドを使うと、スタックに積まずに HTML タグを生成できます。起点となる HTML タグを生成して組み立てるときに使えます。

ダウンロード

jquery.tag.js (Uncompressed only)

(function($) {
  
  // $.tag
  $.tag = function(name) {
    return jQuery('<' + name + ' />');
  };
  
  // tag
  $.fn.tag = function(name) {
    var self = this;
    return self.pushStack($.tag(name));
  };
  
  // gat
  $.fn.gat = function() {
    var self = this;
    return self.end().append(self);
  };
  
})(jQuery); // function($)

デモ

以下は div タグに a タグを追加する例です。tag メソッドで a タグを生成し、gat メソッドでその a タグを div タグに追加しています。

<div id="r1"></div>

<script type="text/javascript">
//<![CDATA[
jQuery(function($) {
  $('#r1')
    .tag('a')
      .attr('href', '/postal/')
      .text('Postal Search APIs & Solutions')
      .gat();
}); 
//]]>
</script>

以下は div タグに ul と li のリストタグ、さらに a タグを追加する例です。ul と li タグがスタックに積まれ、最終的に div タグまでさかのぼって追加されることになります。

<div id="r2"></div>

<script type="text/javascript">
//<![CDATA[
jQuery(function($) {
  $('#r2')
    .tag('ul')
      .tag('li')
        .tag('a')
          .attr('href', '/postal/digest.html')
          .text('Postal Search Ajax API ダイジェスト')
          .gat()
        .gat()
      .tag('li')
        .tag('a')
          .attr('href', '/postal/reference.html')
          .text('Postal Search Ajax API リファレンス')
          .gat()
        .gat()
      .gat()
//]]>
</script>  

jQuery Tag プラグインは jQuery の振る舞いを理解する目的で作成したものですが、特定の場面でニーズがあるかもしれませんので公開します。ライセンスは jQuery と同じにしておきます。

関連情報

  • 郵便番号から住所を検索する #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.