2011-07-05 38 views
0

我在我的網頁如何將類追加到原型javascript框架中的元素?

<script type="text/javascript"> 

    if(window.location == 'http://example.com/about-us.html') { 

     $('about-us').addClassName('active'); 
    } 

</script> 

頂這個原型代碼和這個網站AFER這段JavaScript代碼

<ul> 

      <li id="about-us"> 
       <a href="#"> 
        <span>About Us</span> 
       </a> 
      </li> 

       <li id="something-else"> 
       <a href="#"> 
        <span>Something Else</span> 
       </a> 
      </li> 


    </ul> 

但即使該地址是正確http://example.com/about-us.html類有效時,不能在所有的追加。我已經嘗試警告和警報正在工作,所以條件確定,但是addclassname似乎不起作用。

我在做什麼錯?提前致謝。

回答

1

這就是你如何做到這一點。確保代碼在之後運行該元素已經在頁面上。在你的情況下,這意味着你引用的script塊必須是,因爲你引用的列表爲,因爲你沒有做任何事情來延遲代碼。如果你想script塊是上面列表,你可以這樣做:

document.observe("dom:loaded", function() { 
    // Your code here 
}); 

Live example ......但你平時最好只是把你的腳本在body元素的底部,只是之前關閉</body>標籤,作爲YUI人和其他recommend

如果在您的代碼運行時元素確實存在,我的猜測是您正在查看帶有「查看源代碼」或類似結果的HTML結果。 DOM的運行時更改(包括向元素添加類)不會反映在「查看源代碼」中,該代碼只是頁面的副本,因爲它是從服務器傳遞的。您可以在大多數瀏覽器(或Firebug for Firefox)內置的開發人員工具中使用「DOM」視圖來查看DOM樹的當前狀態。

+0

非常感謝。這是基本的初學者錯誤。 – marian

+0

@marian:我們都做到了! :-)很高興幫助, –

相關問題