2012-03-30 112 views
2

這裏是我的標籤:如何使用JQuery將變量注入到javascript函數的參數中?

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

而不是硬編碼的「12345」這個值,我想從一個javascript函數動態編輯這個並注入一個可變參數有來代替。

任何想法如何做到這一點?

這裏有一些我想要這樣做的JQuery。基本上,我構建了10個動態行,每個行都有上面的標記,每個需要使用自己的「ID」作爲參數調用setActiveCookie。 (該ID用於設置cookie值,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); – 2012-03-31 20:10:19

回答

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定義一個第#行的地圖,比如id[row] = 12345。然後在您的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

由於某種原因無法正常工作。儘管我喜歡這個方法。 – 2012-03-31 20:09:13

相關問題