2013-06-12 30 views
0

我正在使用Wordpress網站,在那裏我正在構建導航欄。我想要添加的功能之一是,如果您在某個頁面上,導航欄中的選項將會大膽地表示您正在訪問的網站部分。腳本在瀏覽器控制檯中運行良好,但不在線

我試圖做到這一點使用JavaScript,因爲我有PHP沒有工作經驗:

var current_page = document.URL; 
var current_option_id=""; 
if(current_page==="some-url"){ 
    current_option_id="menu-item-34"; 
} 
document.getElementById(current_option_id).getElementsByTagName("A")[0].style.fontWeight="bold"; 

基本上,我的代碼計算出我們是哪個頁面,將分配正確的菜單選項的編號爲current_option變量。然後,腳本將嘗試選擇 正確的菜單選項,選擇該菜單選項中的鏈接並更改其樣式。

這個腳本的問題是它根本無法工作,在無法選擇HTML元素的地方產生錯誤; document.getElementById(current_option);返回null。 但是,當我在控制檯中這樣做時,它工作正常,並且樣式正確地更改。爲什麼是這樣?我知道current_option變量具有正確的值,但腳本在嘗試選擇要更改的元素時失敗。

任何建議和幫助,非常感謝。如果您知道如何在PHP中使用與Wordpress完美集成的東西,請分享(並解釋您的代碼如何工作!)。如果我打破了任何StackOverflow規則,我的道歉。

+2

是DOM準備好時,你的代碼開始運行? –

+0

正如orzechowskid指出的那樣,這就是問題所在。非常感謝您的回覆! – jkayani

回答

1

很難說沒有看到您的代碼,但有沒有機會在整個頁面加載之前執行您的腳本(或者,更具體地說,在ID爲#menu-item-34的元素已添加到DOM之前)?

嘗試包裝你的腳本函數裏面,然後設置該功能爲您的頁面的onload處理程序:

window.onload = function() { 
    /* code goes here */ 
}; 
+0

這就是問題所在!這樣一個愚蠢的錯誤,我想我有點認爲DOM準​​備得超快,然後腳本運行。無論如何,我感謝所有發佈或評論的人的幫助。 – jkayani

相關問題