2013-02-25 56 views
0

我這個腳本的工作,以產生一個目錄表:的createElement與createElementWithClass

https://github.com/nanotube/generated_toc

我使用它這個測試頁面上。正如你所看到的,所創建的[返回]鏈接實在是太醜:

http://www.utahrails.net/up/up-loco-features_toc-test.php

應用CSS樣式是創造需求「[返回頁首]」鏈接,在div上課。

這工作:

// create a "back to top" link 
    if (back_to_top == 'on'){ 
    newdiv = document.createElement('div'); 
    newdiv.innerHTML = "<a href='#beforetoc'>[back to top]</a>"; 
    this_head_el.parentNode.insertBefore(newdiv, this_head_el.nextSibling); 

但這並不。在TOC中的內容消失,所有的鏈接消失:

// create a "back to top" link 
    if (back_to_top == 'on'){ 
    newdiv = document.createElementWithClass('div', 'back-to-top'); 
    newdiv.innerHTML = "<a href='#beforetoc'>[back to top]</a>"; 
    this_head_el.parentNode.insertBefore(newdiv, this_head_el.nextSibling); 

我真的很新的腳本,我不能看到問題的所在。

+2

爲什麼你認爲有一個名爲'createElementWithClass()'方法? – jfriend00 2013-02-25 16:42:57

+0

JavaScript控制檯顯示什麼? – 2013-02-25 16:43:13

+0

@jfriend:謝謝你確認它不存在。我很驚訝,直到現在我才錯過了這樣一個有用的功能/方法。 – 2013-02-25 16:43:59

回答

1

我在文檔對象上看不到任何有關createElementWithClass()方法的參考。如果你正在檢查你的javascript錯誤控制檯或調試控制檯,它應該顯示你確切的錯誤。

只要使用此:

// create a "back to top" link 
    if (back_to_top == 'on'){ 
    newdiv = document.createElement('div'); 
    newdiv.className = "back-to-top"; 
    newdiv.innerHTML = "<a href='#beforetoc'>[back to top]</a>"; 
    this_head_el.parentNode.insertBefore(newdiv, this_head_el.nextSibling); 
+0

謝謝。基本的東西,但這就是我們學習的方式;先做錯了。 – 2013-02-25 17:22:32

+0

控制檯?安慰?什麼控制檯?哦,那個控制檯。 (Firefox工具> Web開發人員> Web控制檯)現在我只需要弄清楚它告訴我什麼。 – 2013-02-25 17:27:33

0

沒有(至少沒有原生)createElementWithClass功能。使用

var newdiv = document.createElement('div'); 
newdiv.className = 'back-to-top'; 
… 

(見className propertyvar statement文檔)