2012-03-30 7 views
2

は、ここに私のタグです:JQueryを使用してJavaScript関数のパラメータに変数を挿入する方法は?

<div class="ContentBlock"> 
    <a href="javascript:setActiveCookie('12345',7)"><img src="/images/blah.gif"></a> 
</div> 

ではなくハードコーディング「12345」の値を、私はjavascript関数から動的にこれを編集して、代わりにそこに変数パラメータを注入したいと思います。

どのようにすればいいですか?

ここで私はこれをやりたいと思うJQueryをいくつか紹介します。基本的に、私は10の動的行を構築しています。それぞれに上記のタグがあり、それぞれがsetActiveCookieを呼び出す際にパラメータとして独自のIDを使用する必要があります。 (IDはクッキー値、FWIWを設定するために使用されます)。以下、私はCLONEを持っていて、すでにJSON stringifyされた値を動的に生成されたHTMLに入れ替えました。私は関数呼び出しにこのIDを注入する必要があります。どんな助けもありがとう!

$.each(val, function(key2, value) { 
    ///inject key2 and value into already-cloned JS object here. This already is working. 
    if (key2 == 'storeId') { 
     var ID = (JSON.stringify(value)); 
     ///Shove this ID into the <a> tag here??? 
    } 
}); 
+0

私が終わった何それは... store.find( 'a#' + key2).attr( 'id'、 'ID _' + value); –

答えて

0

HTML5 data- attrbute使用します。

設定値:

$('#X').data('value1',12345) 
$('#X').data('value2',7) 

HTMLを

<a id="X" href="javascript:setActiveCookie(this)"><img src="/images/blah.gif"></a> 

取得値:

function setActiveCookie(element) { 
     var value1 = $(element).data('value1') 
     var value2 = $(element).data('value2') 
} 
0

私はJavaScriptの人ではありませんが、id[row] = 12345のようにこのIDに行#のマップを定義できる必要があります。そして、あなたのJQuery関数で、そのマップの値を再割り当てしてください:id[row] = ID。アンカータグでは、ちょうど、<a href="javascript:setActiveCookie(id[row], row)>

0

代わりのハードhref属性をコーディングを持ってjavascript:void(0);を使用して、jQueryのでクリックイベントを設定します。

<a id="Link1" href="javascript:void(0);">Link Text or Image</a> 

のjavascript:

$.each(val,function(key2,value){ 

       ///inject key2 and value into already-cloned JS object here. This already is working. 
       if (key2=='storeId'){ 
        $("#Link1").click(function() { 
         setActiveCookie(value, 7); 
        }); 
       } 

      }); 
+0

何らかの理由で動作しません。私はアプローチが好きです。 –

関連する問題