2013-03-27 19 views
12

これはうまくいくはずですが、そうは思わないです。私が間違っていることを確信していない。href URLの最後に変数を追加するonClick JQUERY

function addURL() 
{ 
$(this).attr('href', function() { 
return this.href + '&cylnders=12'; 
} 


<a onclick="addURL();" href="/search-results/?var1=red&var2=leather">Click this</a> 

答えて

25

まず、あなたは括弧の束が欠落しています

function addURL() 
{ 
    $(this).attr('href', function() { 
     return this.href + '&cylnders=12'; 
    }); 
} 

第二に、あなたのコード内で「これは」ウィンドウではなく、要素を参照します。代わりにこれを試してみてください:

<a onclick="addURL(this)" href="/search-results/?var1=red&var2=leather">Click this</a> 

function addURL(element) 
{ 
    $(element).attr('href', function() { 
     return this.href + '&cylnders=12'; 
    }); 
} 
+0

ああ、良いキャッチ、ありがとうございます。 Unfortuantelyそれはかなりsyxtaxエラーが確かにそれを修正していませんでした。 –

+0

ライブデモ:http://jsfiddle.net/fSAzA/ – Christophe

+0

完全に機能しました。助けをお寄せいただきありがとうございます。 –

1
 function addURL() 
     { 
    var data=window.location+"&cylnders=12"; 
    alert(data); 
    } 

は、この概念を試してみてください。それはあなたにいくつかの解決策を与えることを望む。

あなたはjqueryのを通してそれを識別するために、あなたのリンクのhrefにIDやクラスを追加しないのはなぜこのあまりに

  function addURL() 
      { 
       window.location.href='/search-results/?var1=red&var2=leather&cylnders=12' 
      } 
+0

これを追加するとリンクがクリックされ、変数を追加した現在のURLが返されます。私がやろうとしているのは、hrefのURLを取得し、最後にvaribaleを追加してから、そのURLに移動することです。 –

1

を試してみてください? href属性にデータを追加する前にリンクが開始されたようです。

<a class="datalink" href="/search-results/?var1=red&var2=leather">Click this</a> 
<script> 

$('.datalink').attr('href', function() { 
return this.href + '&cylnders=12'; 

}); 

</script> 
+0

あなたの例でアンカータグに定義されているjavascript関数がないので、 'return'ステートメントは機能しません。代わりに、 "this.href = this.href + '&cylnders = 12" – Hemant

+0

と同じように正常に動作しているようです。 – chris

関連する問題