簡體   English   中英

如何自動生成目錄

[英]How auto-generate a table of contents

我是JavaScript的新手,在學校里,我必須自動將頁面上的每個<\\ h1>生成為一個“ ol”,並在每個“ li”中添加指向頁面上該標頭放置位置的鏈接。最后,我有一個目錄,每個“ li”上都有鏈接。 因此,我應該能夠只寫文本,而不必擔心目錄。 有沒有一種方法可以不使用過於復雜的代碼呢? 而且最好不要太長,這樣我才能理解。

例如

<h1 id="h1-01">Title 1<\h1>
<h1 id="h1-02">Titel 2<\h1>
<h1 id="h1-03">Titel 3<\h1>
<h1 id="h1-04">Titel 4<\h1>

使它生成為:

<ol>
<li><a href="h1-01">Title 1</a></li>
<li><a href="h1-02">Title 2</a></li>
<li><a href="h1-03">Title 3</a></li>
<li><a href="h1-04">Title 4</a></li>
</ol>

編輯:我不希望任何人都做我的所有作業,這甚至只是作業的一小部分。 我想知道的是如何在沒有太復雜的代碼的情況下使用javascript中的列表項創建有組織的列表。 我已經找到了一種將每個標題文本放入變量的方法。 這就是我所擁有的

function generate(){
var titels = new Array();
for(var i = 1;i<10;i++){
var test = 'h1-0'+ i;
    titels[i] = document.getElementById(test).textContent;  
}
}
-->
</script>

唯一的問題是,現在我必須用這些變量列出一個列表,但是我在互聯網上找不到任何有用的東西,我發現的所有東西都使用Jquery ir來解決某人的問題。 我也想一種方法來計算我正在使用的標頭的數量,但這是另一個問題。 實際上甚至有可能像我在編寫代碼時那樣實現代碼嗎?

喜歡:

html.write("<ol>");

for(var i = 1, i<10,i++){

html.write("<il>" + titels[i] +  "<\il>");

}

html.write("<\ol>")

我不會做功課,但是會為您指明方向。

嘗試構建一個包含每個條目的ID和標題的對象。 從那里,您可以使用該對象構建幾乎所有東西,包括有序列表。

當然,您可以將h1標簽硬重寫為列表項,但這不是正確的方法,也不是您應該學習的東西。

一個開始的提示:您可以在jquery的幫助下做到這一點。

像這樣的HTML:

 <ol id=contents></ol>

   <h1>Test</h1>
      bla bla 

      <h1> Test2 </h1>
      Ble ble ble

jQuery:

 $(document).ready(function(){
     $("h1").each(function(){
         $("#contents").append("<li>" + $(this).html() + "</li>");
     });
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM