目次
最初のタイプ: 第 1 レベルのディレクトリのみをサポートします
2 番目のタイプ: 二次分類をサポート
ホームページ ウェブフロントエンド jsチュートリアル 章の目次インデックスを自動的に生成する Web サイトの js コード例

章の目次インデックスを自動的に生成する Web サイトの js コード例

Jan 09, 2018 am 09:12 AM
javascript 索引 自動生成

ウェブサイトの多くの機能は js で実装されています。この記事では、ブログ ガーデン ブログがチャプター ディレクトリ インデックスを自動生成できるようにする複数の js コードを主に紹介します。

最初のタイプ: 第 1 レベルのディレクトリのみをサポートします

、段落として分類はサポートされていません

ブログ投稿の品質に加えて、優れたブログ投稿には優れた構成も含まれます読者が続きを読める構造 ガーデンフレンドのブログ記事の中には章ごとに分かれていて、目次をクリックすると目次が表示されるのが便利です。を選択すると、対応する章にジャンプして読むことができます。また、ディレクトリの先頭に戻ることもできます。Fish Li のブログ記事はこのような構成です。もちろん、ブログ記事を作成するときにこの構造を手動で設定した場合は、それは非常に面倒であり、間違いなくライターの作業負荷が増加します。章のインデックスを自動的に生成できれば、多くの作業を節約できると思いませんか?当初は FireBug を使用して Fish Li のソース コードがどのように実装されているかを確認したかったのですが、js が暗号化されているようです。実際、コードはそれほど多くなく、非常に簡単でした。

html コード


<h3>章节1</h3>
<p>这里是章节1的内容</p>
<h3>章节2</h3>
<p>这里是章节2的内容</p>
<h3>章节3</h3>
<p>这里是章节3的内容</p>
<h3>章节4</h3>
<p>小小代码,不值一提,如果您觉得对您还有一点用,就点个赞支持一下吧。</p>
ログイン後にコピー

js コード


<script language="javascript" type="text/javascript">
//生成目录索引列表
function GenerateContentList()
{
 var jquery_h3_list = $(&#39;#cnblogs_post_body h3&#39;);//如果你的章节标题不是h3,只需要将这里的h3换掉即可
 if(jquery_h3_list.length>0)
 {
 var content = &#39;<a name="_labelTop"></a>&#39;;
 content += &#39;<p id="navCategory">&#39;;
 content += &#39;<p style="font-size:18px"><b>阅读目录</b></p>&#39;;
 content += &#39;<ul>&#39;;
 for(var i =0;i<jquery_h3_list.length;i++)
 {
  var go_to_top = &#39;<p style="text-align: right"><a href="#_labelTop" rel="external nofollow" rel="external nofollow" >回到顶部</a><a name="_label&#39; + i + &#39;"></a></p>&#39;;
  $(jquery_h3_list[i]).before(go_to_top);
  var li_content = &#39;<li><a href="#_label&#39; + i + &#39;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >&#39; + $(jquery_h3_list[i]).text() + &#39;</a></li>&#39;;
  content += li_content;
 }
 content += &#39;</ul>&#39;;
 content += &#39;</p>&#39;;
 if($(&#39;#cnblogs_post_body&#39;).length != 0 )
 {
  $($(&#39;#cnblogs_post_body&#39;)[0]).prepend(content);
 }
 } 
}
GenerateContentList();
</script>
ログイン後にコピー

手順: ブログ パークにログインした後、ブログ パークのバックエンド管理を開き、[設定] タブに切り替えて、上記のコードを貼り付けます「フッターHTMLコード」エリアに保存するだけです。

注: 上記の js コードから抽出された h3 は章のタイトルとして使用されます。タイトルが h3 でない場合は、コードのコメントで自分で変更してください。このコードは、記事の冒頭に目次インデックスを生成するだけでなく、各章の右下隅 (つまり、次の章タイトルの右上隅) に「トップに戻る」リンクも生成します。読者が目次に戻りやすくするため。この記事のディレクトリ構造は自動的に生成されます。役に立ったと思われる場合は、できるだけ早く試してください。

原文: https://www.cnblogs.com/wangqiguo/p/4355032.html

2 番目のタイプ: 二次分類をサポート

through

レンダリング:

長い記事の場合は、読者が記事の内容とレベルをより明確に理解できるように、優れた目次インデックスが必要です。ただし、現時点 (2015.7) では、Blog Park は csdn blog のような公開記事のディレクトリ インデックスを自動的に生成しません。ただし、一部のネチズンは、ブログ パーク バックエンドによって提供されるカスタム関数を使用して独自のスクリプトを作成して、この関数を実装しています。私が使用したスクリプトは主に @lavender のメロディーを参照しています。記事のアドレスは http://www.cnblogs.com/wangqiguo/p/4355032.html です。

オリジナルの作成者のスクリプトはレベル 1 のディレクトリのみをサポートしています。私は 2 つのレベルを変更しました。最初のレベルは h2 で、2 番目のレベルは h3 です。ディスカッション QQ グループ アカウントなど、いくつかのガジェットも追加されました。効果は以下の図に示されています:

関数を追加する具体的な手順は次のとおりです:

1. ブログパークのバックエンドが js をサポートしていることを確認してください。これはデフォルトではサポートされていません。メールを送信する必要があります。アクティベーションを申請するために公式にメールを書きました(メールは contact@cnblogs .com です)。メールの内容には次の 2 つの単語を書くだけで、1 時間以内に返信が届きました。 。 。 。
2. バックエンドにスクリプトを追加します
ブログパークのバックエンドを開き、「設定」タブに入り、下部の「フッターHTMLコード」に対応する編集ボックスにjsコードを貼り付け、「」をクリックします。保存」ボタンをクリックして保存します。
3. フォーマットに従って記事を書く
新しいブログ記事を書くときは、h2、h3 などの js スクリプトで設定されたフォーマットに従って章を分割することに注意してください。もちろん、過去に公開した記事に h2、h3 などがあれば、ディレクトリインデックスが自動生成されます。

は次のとおりです:


<script language="javascript" type="text/javascript">

// 生成目录索引列表
// ref: http://www.cnblogs.com/wangqiguo/p/4355032.html
// modified by: zzq
function GenerateContentList()
{
 var mainContent = $(&#39;#cnblogs_post_body&#39;);
 var h2_list = $(&#39;#cnblogs_post_body h2&#39;);//如果你的章节标题不是h2,只需要将这里的h2换掉即可

 if(mainContent.length < 1)
 return;
 
 if(h2_list.length>0)
 {
 var content = &#39;<a name="_labelTop"></a>&#39;;
 content += &#39;<p id="navCategory">&#39;;
 content += &#39;<p style="font-size:18px"><b>目录</b></p>&#39;;
 content += &#39;<ul>&#39;;
 for(var i=0; i<h2_list.length; i++)
 {
  var go_to_top = &#39;<p style="text-align: right"><a href="#_labelTop" rel="external nofollow" rel="external nofollow" >回到顶部</a><a name="_label&#39; + i + &#39;"></a></p>&#39;;
  $(h2_list[i]).before(go_to_top);
  
  var h3_list = $(h2_list[i]).nextAll("h3");
  var li3_content = &#39;&#39;;
  for(var j=0; j<h3_list.length; j++)
  {
  var tmp = $(h3_list[j]).prevAll(&#39;h2&#39;).first();
  if(!tmp.is(h2_list[i]))
   break;
  var li3_anchor = &#39;<a name="_label&#39; + i + &#39;_&#39; + j + &#39;"></a>&#39;;
  $(h3_list[j]).before(li3_anchor);
  li3_content += &#39;<li><a href="#_label&#39; + i + &#39;_&#39; + j + &#39;" rel="external nofollow" >&#39; + $(h3_list[j]).text() + &#39;</a></li>&#39;;
  }
  
  var li2_content = &#39;&#39;;
  if(li3_content.length > 0)
  li2_content = &#39;<li><a href="#_label&#39; + i + &#39;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >&#39; + $(h2_list[i]).text() + &#39;</a><ul>&#39; + li3_content + &#39;</ul></li>&#39;;
  else
  li2_content = &#39;<li><a href="#_label&#39; + i + &#39;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >&#39; + $(h2_list[i]).text() + &#39;</a></li>&#39;;
  content += li2_content;
 }
 content += &#39;</ul>&#39;;
 content += &#39;</p><p> </p>&#39;;
 content += &#39;<p style="font-size:18px"><b>正文</b></p>&#39;;
 if($(&#39;#cnblogs_post_body&#39;).length != 0 )
 {
  $($(&#39;#cnblogs_post_body&#39;)[0]).prepend(content);
 }
 } 

 var qqinfo = &#39;<p style="color:navy;font-size:12px">讨论QQ群:135202158</p>&#39;;
 $(mainContent[0]).prepend(qqinfo);
}

GenerateContentList();
</script>
ログイン後にコピー

3番目のタイプ:

効果

を実現するために、3レベルのディレクトリ

をサポートします: http: // www.jb51.net/article/132341.htm

Zhang Guo のページを参照してください。彼は

を使用しています。ここでは、Script House のエディターは

を使用しています。 ;

、SEO によれば、ページ上に多数の h1 が存在すると重みに影響します。


<script language="javascript" type="text/javascript">
 //生成目录索引列表
 function GenerateContentList() {
  var jquery_h1_list = $(&#39;#content h2&#39;);
  if (jquery_h1_list.length == 0) { return; }
  if ($(&#39;#content&#39;).length == 0) { return; }

  var content = &#39;<a name="_labelTop"></a>&#39;;
  content += &#39;<p id="navCategory">&#39;;
  content += &#39;<p style="font-size:18px"><b>目录</b></p>&#39;;
  // 一级目录 start
  content += &#39;<ul class="first_class_ul">&#39;;

  for (var i = 0; i < jquery_h1_list.length; i++) {
  var go_to_top = &#39;<p style="text-align: right"><a name="_label&#39; + i + &#39;"></a></p>&#39;;
  $(jquery_h1_list[i]).before(go_to_top);

  // 一级目录的一条
  var li_content = &#39;<li><a href="#_label&#39; + i + &#39;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >&#39; + $(jquery_h1_list[i]).text() + &#39;</a></li>&#39;;

  var nextH1Index = i + 1;
  if (nextH1Index == jquery_h1_list.length) { nextH1Index = 0; }
  var jquery_h2_list = $(jquery_h1_list[i]).nextUntil(jquery_h1_list[nextH1Index], "h3");
  // 二级目录 start
  if (jquery_h2_list.length > 0) {
   //li_content +=&#39;<ul style="list-style-type:none; text-align: left; margin:2px 2px;">&#39;;
   li_content += &#39;<ul class="second_class_ul">&#39;;
  }
  for (var j = 0; j < jquery_h2_list.length; j++) {
   var go_to_top2 = &#39;<p style="text-align: right"><a name="_lab2_&#39; + i + &#39;_&#39; + j + &#39;"></a></p>&#39;;
   $(jquery_h2_list[j]).before(go_to_top2);
   // 二级目录的一条
   li_content += &#39;<li><a href="#_lab2_&#39; + i + &#39;_&#39; + j + &#39;" rel="external nofollow" >&#39; + $(jquery_h2_list[j]).text() + &#39;</a></li>&#39;;

   var nextH2Index = j + 1;
   var next;
   if (nextH2Index == jquery_h2_list.length) {
   if (i + 1 == jquery_h1_list.length) {
    next = jquery_h1_list[0];
   }
   else {
    next = jquery_h1_list[i + 1];
   }
   }
   else {
   next = jquery_h2_list[nextH2Index];
   }
   var jquery_h3_list = $(jquery_h2_list[j]).nextUntil(next, "h4");
   // 三级目录 start
   if (jquery_h3_list.length > 0) {
   li_content += &#39;<ul class="third_class_ul">&#39;;
   }

   for (var k = 0; k < jquery_h3_list.length; k++) {
   var go_to_third_Content = &#39;<p style="text-align: right"><a name="_label3_&#39; + i + &#39;_&#39; + j + &#39;_&#39; + k + &#39;"></a></p>&#39;;
   $(jquery_h3_list[k]).before(go_to_third_Content);
   // 三级目录的一条
   li_content += &#39;<li><a href="#_label3_&#39; + i + &#39;_&#39; + j + &#39;_&#39; + k + &#39;" rel="external nofollow" >&#39; + $(jquery_h3_list[k]).text() + &#39;</a></li>&#39;;
   }

   if (jquery_h3_list.length > 0) {
   li_content += &#39;</ul>&#39;;
   }
   li_content += &#39;</li>&#39;;
   // 三级目录 end
  }
  if (jquery_h2_list.length > 0) {
   li_content += &#39;</ul>&#39;;
  }
  li_content += &#39;</li>&#39;;
  // 二级目录 end

  content += li_content;
  }
  // 一级目录 end
  content += &#39;</ul>&#39;;
  content += &#39;</p>&#39;;

  $($(&#39;#content&#39;)[0]).prepend(content);
 }

 GenerateContentList();
 </script>
ログイン後にコピー
皆さんは学びましたか?やってみよう。関連する推奨事項:directoryディレクトリインデックスの表示を禁止する

jsquery jsonpクロスドメインシミュレーション検索エンジンの例共有

例 JavaScriptを使用して配列内の値のインデックスをランダム化し、ランダムな配列を作成する方法の詳細な説明

以上が章の目次インデックスを自動的に生成する Web サイトの js コード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

ディレクトリを自動生成する方法 自動生成されるディレクトリの形式を設定する方法 ディレクトリを自動生成する方法 自動生成されるディレクトリの形式を設定する方法 Feb 22, 2024 pm 03:30 PM

Wordでカタログのスタイルを選択すると、操作完了後に自動生成されます。分析 1. コンピューター上の Word に移動し、クリックしてインポートします。 2入力後、ファイルディレクトリをクリックします。 3 次に、ディレクトリのスタイルを選択します。 4. 操作が完了すると、ファイル ディレクトリが自動的に生成されることがわかります。補足: 概要/メモ記事の目次は、第 1 レベルの見出し、第 2 レベルの見出し、および第 3 レベルの見出しを含めて自動的に生成されます (通常は第 3 レベルの見出しまでです)。

wps ディレクトリのディレクトリ ページ番号を自動的に生成する方法 wps ディレクトリのディレクトリ ページ番号を自動的に生成する方法 Feb 27, 2024 pm 04:01 PM

WPS は、さまざまなオフィス タスクを効率的に完了するのに役立つ強力なオフィス ソフトウェアです。中でも目次ページ番号の自動生成は非常に実用的な機能です。ユーザーの作業効率が大幅に向上するため、この Web サイトの編集者が WPS を使用してディレクトリのページ番号を自動的に生成する方法を詳しく紹介する記事をお届けします。 wps ディレクトリの目次ページ番号を自動生成する方法 まず、wps グループ文書を開き、空白スペースに生成する目次の内容を入力し、タイトル 1、タイトル 2、スタート メニュー バーのタイトル 3。 2. 設定後、[参照]機能をクリックし、参照ツールバーの[ディレクトリ]をクリックします。

See all articles