2011-10-11 8 views
0

javascript + DOMの質問。私のJavascriptコードを改善する:ページのナビゲーションバーにリンクのスタイルを設定

コードを改善できますか?

私は(いくつかのページで)このようなページのナビゲーションバーがあります。

<div id="pagebar"> 
<a href="iraq_pixra1.html">1</a> 
<a href="iraq_pixra2.html">2</a> 
<a href="iraq_pixra3.html">3</a> 
<a href="iraq_pixra4.html">4</a> 
<a href="iraq_pixra5.html">5</a> 
<a href="iraq_pixra6.html">6</a> 
</div> 

私は、現在のページのスタイルが強調表示されるように、私のjavascriptのリンクのスタイルを変更したいです。

私のjavascriptコードはこれです。現在のページのURLを見つけ、リンクタグの1つと一致させようとします。一致する場合はスタイルを設定します。

function setPageBarStyle() { 
    var pageNavBar = document.getElementById("pagebar"); 

    if (pageNavBar != null) { 
     var fPath = document.location.pathname; 
     var fPathParts = fPath.split('/'); 
     var fName = (fPathParts[fPathParts.length-1]); // file name after last slash. e.g. xyz.html 

     var linkTags = pageNavBar.getElementsByTagName("a"); 
     for (var ii = 0; ii < linkTags.length; ii++) { 
      var aUrl = linkTags[ii].href; 
      var aUrlParts = aUrl.split("/"); 
      var aUrlLastPart = (aUrlParts[aUrlParts.length-1]); // part after last slash. e.g. xyz.html 
      if (aUrlLastPart == fName) { 
       linkTags[ii].style.border="thin solid blue"; 
      } 
     } 
    } 
} 

setPageBarStyle(); 

コードを改善するにはどうすればよいですか?私はDOMスクリプティングが初めてです。

私がパスを分割する方法は、あまりにも冗長で、多くの変数があるようです。私はそれが正規表現で行うことができると思うが、javascript/DOMでどのようにわからない。

ありがとうございました。

答えて

1

あなたはこれを変更することができます。これにより

var aUrl = linkTags[ii].href; 
var aUrlParts = aUrl.split("/"); 
var aUrlLastPart = (aUrlParts[aUrlParts.length-1]); // part before last slash. e.g. xyz.html 

を:

var aUrlLastPart = linkTags[ii].href.split("/").pop(); 

ポップ()スプリット(によって返された配列の最後の要素を返す)、配列から削除されます方法(あなたの場合は無関係です)。

私も

はそれが助け場合、私に教えてください...クロスブラウザが簡単にJS管理するために、jQueryまたはsimilarsをチェックアウトをお勧めします! :)

+0

6つの変数が削除されました!ありがとう! –

+0

問題はありません:)喜んで助けてください... – Deleteman