KANTENNA.COM

Solarized

HOME > WEBプログラム覚書 > jQueryでページ内リンクを自動作成

jQueryでページ内リンクを自動作成

ページ内リンクを手動で作成するのは結構手間なんで jQueryを利用して自動で作成。

サンプルコード

#MainContents内の見出しh3に対してページ内リンクを作成する。

Javascript
  1.  $(function(){
  2.   /**
  3.   * #MainContents内のh3に
  4.   * 対してページ内リンクを作成する
  5.   *
  6.   */
  7.  
  8.   // a nameの接頭辞
  9.   var prefix = 'inline';
  10.  
  11.   // liを格納
  12.   var list = '';
  13.  
  14.   $('#MainContents h3').each(function(i){
  15.   aname = prefix + i;
  16.   $(this).before('<a name="' + aname + '"></a>');
  17.   list += '<li><a href="#' + aname + '">' + $(this).text() + '</a></li>';
  18.   });
  19.  
  20.   // #MainContentsの先頭に追加
  21.   $('#MainContents').prepend('<ul>' + list + '</ul>');
  22.  });
HTML
  1.  <div id="MainContents">
  2.  
  3.   <h3>1.見出し1</h3>
  4.   <p>
  5.   見出し1の内容がここに入ります。
  6.   <br />
  7.   <br />
  8.   <br />
  9.   </p>
  10.  
  11.  
  12.   <h3>2.見出し2</h3>
  13.   <p>
  14.   見出し2の内容がここに入ります。
  15.   <br />
  16.   <br />
  17.   <br />
  18.   </p>
  19.   ・
  20.   ・
  21.   ・
  22.  </div>

実行結果

1.見出し1

見出し1の内容がここに入ります。


2.見出し2

見出し2の内容がここに入ります。


3.見出し3

見出し3の内容がここに入ります。


4.見出し4

見出し4の内容がここに入ります。


5.見出し5

見出し5の内容がここに入ります。


もっと良いものがプラグインとかでありそ。 ぼちぼちjQueryのプラグインも漁ってみるか。

トラックバック(4)

2009年1月 9日 13:37

jQueryによる表示、非表示切り替えWEBプログラム覚書

jQueryによるDiv要素の表示、非表示切り替え続きを読む

2009年1月20日 17:21

出来ると思ったけど出来なかったJavascriptコードWEBプログラム覚書

「innerText」はFirefoxで利用できないようなので、try~catchで分岐させようと思ったけどダメだったのでjQueryのブラウザ判定を利用...続きを読む

2009年1月27日 22:15

jQueryオブジェクトWEBプログラム覚書

jQueryオブジェクトについていろいろ気になったので調べてみたらいろいろとわかっていい勉強になったよって話続きを読む

2010年1月19日 12:19

[jQuery]こんな機能があったんだ。jQuery stop()WEBプログラム覚書

jQuery stop()のいろいろな機能を試してみたよ続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。

2012
01.21

[PHP]共有サーバーユーザーのためのPEARインストール方法

共有サーバーでは自由にPEARのパッケージがインストールできないので、 プロジェクトローカルに設置することになりますが、以前httpベースのものを使ってみたんですけど、 やたら重くて使い物にならなかったので、僕は普通にFTPでアップするようにしてます。

ってことでプロジェクトローカルへのPEARのインストール方法。