2011-07-05 10 views
0

は、私は私のページプロトタイプのjavascriptフレームワークで要素にクラスを追加する方法は?

<script type="text/javascript"> 

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

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

</script> 

の上部に、このプロトタイプのコードと、この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> 

しかし、たとえアドレスのaferこのHTMLを持っているすべてで追加されていないクラスアクティブ正しいhttp://example.com/about-us.htmlです。私はアラートを試みましたが、アラートは機能しているので、条件はOKですが、addclassnameは機能していないようです。

私は間違っていますか?前もって感謝します。

答えて

1

これはあなたのやり方です。コードがの後にの要素がページ上に既に存在することを確認してください。あなたの場合は、引用したブロックscriptの後にlike this - live exampleのリストの後になければならないことを意味します。あなたはscriptブロックが上記のリストになりたい場合は、これを行うことができます:

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

Live exampleを...しかし、あなたはただ単に、body要素の下部にスクリプトを置く通常方がいいでしょう閉じる前に</body>タグ、YUIの人々などrecommend

コードが実行されているときに要素が存在する場合は、結果のHTMLを「ソースの表示」などで確認していると思います。 DOMへのランタイム変更(要素へのクラスの追加を含む)は、「ビューソース」には反映されません。これは、サーバーから配信されたページのコピーだけです。ほとんどのブラウザ(Firefox用のFirebug)に組み込まれている開発ツールの "DOM"ビューを使用して、の現在の DOMツリーの状態を見ることができます。

+0

ありがとうございました。これは基本的な初心者の間違いでした。 – marian

+0

@marian:私たちはすべてそれをやった! :-)喜んで助けてくれた、 –

関連する問題