2011-02-19 72 views
0

我正在使用一些javascript來動態改變一個網頁,並且我試圖讓它改變一些html,但是如果我在javascript中有html,它甚至不會執行開始部分。下面是我的javascript:Javascript html改變

function Home() 
{ 
    document.getElementById("title").innerHTML=("Home"); 
    document.getElementById("bodyfill").innerHTML=("Home stuff here"); 

    var newHTMLHome = "a href="#" title="Home" class="active">Home/a>"; 

    document.getElementById('hometab').innerHTML = newHTMLHome; 

    var newHTMLUser = "a href="javascript:User()" title="Home" class="active">Home/a>"; 

    document.getElementById('usertab').innerHTML = newHTMLUser; 
} 

function User() 
{ 
    document.getElementById("title").innerHTML=("User"); 
    document.getElementById("bodyfill").innerHTML=("User stuff here"); 

    var newHTMLHome = "a href="javascript:Home()" title="Home" class="active">Home/a>"; 

    document.getElementById('hometab').innerHTML = newHTMLHome; 

    var newHTMLUser = "a href="#" title="Home" class="active">Home/a>"; 

    document.getElementById('usertab').innerHTML = newHTMLUser; 
} 

我試圖得到它的動態改變激活的標籤,這是什麼,這是應該做的,但它沒有任何想法,爲什麼?如果你需要更多的代碼讓我知道。提前致謝!

編輯:不得不改變鏈接代碼,只是假設標籤是在這種情況下,正確的

+2

你的代碼似乎有非轉義的字符串:你有使用[jsLint](http://www.jslint.com/)或Firebug或類似的來檢查你的代碼嗎?第二個問題:您如何以及在哪裏將家庭和用戶功能稱爲? – 2011-02-19 01:46:54

+0

這很難讀。你能突出顯示你的代碼並點擊「{}」按鈕 – 2011-02-19 01:47:48

回答

0

你的問題是,你不逃串的特殊字符,例如:

var newHTMLHome = "<a href="#" title="Home" class="active">Home</a>"; 

相反,嘗試這樣的:

var newHTMLHome = '<a href="#" title="Home" class="active">Home</a>'; 

請看看herehere充分了解發生了什麼。

0

是你的確切代碼複製和粘貼?如果是這樣的話..你不能在這樣的雙引號內加雙引號。檢查你的JavaScript錯誤控制檯,你很可能有一些錯誤。嘗試用單引號替換字符串中的雙引號。

另外,是否有一個原因,你沒有使用JS庫像jquery(http://jquery.com)?他們讓事情變得如此簡單。

0

我會跳過告訴你關於轉義你的引用,並指出你在另一個方向,因爲你可能試圖在這裏重新發明輪子。

有一些偉大的工具包,將爲您做標籤式佈局。我將推薦jQuery和jQueryUI,儘管這裏還有其他的Javascript庫。

demo page for the jQuery UI tabs會告訴你所有你需要做的工作。一旦你按照演示,你只需要去jQuery UI download page,並勾選選項卡功能框,它會給你一個很好的可下載包來開始。

使用jQuery(或任何其他UI工具包)的優勢在於,您正在使用許多有興趣增強這些項目的鍵盤訪問項目,並且也有興趣修復任何錯誤 - 在某些方面,這意味着您可以讓其他人在努力工作的同時專注於製作更好的網站/應用程序。