2011-10-22 7 views
1

誰かが私を助けてくれることを願っています...私はhtmlサイトの先頭に保存されているパラメータを取得しようとします。サイト上の "rel = 'gallery'"属性を持たないすべてのリンク。いくつかのリンクには既に他のGETパラメータがあります。リンクの最後に変数を追加する(REL-attrを除いて)

<head> 
<script type="text/javascript"> 
    var ParameterNew = "test"; 
</script> 
</head> 
[...] 
Search: <a href="http://google.com">Google</a><br/> 
Social Media: <a href="http://facebook.com?show=start">Facebook</a> 
<br/><br/> 
<a rel="gallery" href="img/1.jpg">Gallery Link 1</a><br/> 
<a rel="gallery" href="img/2.jpg">Gallery Link 2</a><br/> 

したがって、rel-attributを持たないすべてのリンクの後ろにParameterNewを追加しようとします。ルックスに、それは持って終わり

はこれをうそ:

<head> 
<script type="text/javascript"> 
    var ParameterNew = "test"; 
</script> 
</head> 
[...] 
Search: <a href="http://google.com?parameter=test">Google</a><br/> 
Social Media: <a href="http://facebook.com?show=start&parameter=test">Facebook</a> 
<br/><br/> 
<a rel="gallery" href="img/1.jpg">Gallery Link 1</a><br/> 
<a rel="gallery" href="img/2.jpg">Gallery Link 2</a><br/> 

私はこの1つを書きました。それだけで(例えばなど)のinnerHTMLを置き換える:

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    if (links[i].target !== "_blank") 
     links[i].innerHTML = 'test'; 
} 

私は唯一のパラメータを追加する問題を抱えている...多分誰かが助けることができますか? thanx

答えて

1

これは、正確なサンプル条件を考慮に入れた合理的に簡単な解決策です。つまり、単純なリンクがあるので、完了する必要があるのは、パラメーターを追加する際に使用するコネクターを確認することだけです。リンクにリンクであるパラメータが含まれている場合は、?または&を使用してパラメータを追加するかどうかを判断するために、さらに複雑な処理を行う必要があります。

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    if (links[i].rel != 'gallery') { 
     var href = links[i].href, 
      connector = '?'; 
     if (href && href.match(/\?/)) { 
      connector = '&'; 
     } 
     links[i].href = href + connector + 'parameter=' + ParameterNew; 
    } 
}