[英]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.