2012-04-27 38 views
1

我有一些javascript/jquery代碼動態地用一堆列表項來填充無序列表。列表中的項目我有一個鏈接,我想一些數據與被像這樣生成的鏈接關聯:將數據或數組索引附加到錨標記

var thing1 = { name: 'My Object' }; 
var thing2 = { name: 'My Other Object' }; 
var li = $('<li></li><br />'); 
var aSel = $('<strong>' + thing1.name + '<br /><a class="btn btn-mini btn-success addDeal" href="javascript:void(0)"><i class="icon-plus"></i>Add Deal</a>'; 
li.append(aSel); 
li.append(add); 
$('#sidebar').append(li); 
//This is in a loop so the same thing would happen with thing2, etc 

會生成HTML像這樣:

<div id="results"> 
    <ul id="sidebar"> 
     <li> 
      <strong>My Object</strong><br /> 
      <a class="btn btn-mini btn-success addDeal" href="javascript:void(0)"><i class="icon-plus"></i>Add Deal</a> 
     </li> 
     <li> 
      <strong>My Other Object</strong><br /> 
      <a class="btn btn-mini btn-success addDeal" href="javascript:void(0)"><i class="icon-plus"></i>Add Deal</a> 
     </li> 
    </ul> 
</div> 

所以,如果用戶點擊首先添加交易鏈接,我想在腳本中的其他地方使用thing1數據。如果他們的第二個鏈接被點擊,我想使用thing2數據。

我要下去的路徑涉及一個數組和一些代碼,這些代碼對我來說並不完全正確。我想我錯過了一些微不足道的東西。

回答

2

您可以使用jQuery.data函數將「東西」附加到每個鏈接。在var aSel =行後右:

$('a', aSel).data('thing', thing1); // Select the anchor tag inside of 
            // aSel and attach thing1 to it 

然後點擊錨標記時,與檢索:var thing = $(this).data('thing');

+0

我一直在你的jsfiddle建議亂搞,它似乎並沒有工作。 [小提琴在這裏](http://jsfiddle.net/BigPete/rfUNB/) – Pete 2012-04-27 02:47:29

+0

我只是想補充說[這個小提琴](http://jsfiddle.net/BigPete/rfUNB/1/)的作品。我剛剛做了'aSel.data('thing',thing1)',儘管裏面有大量標籤,但似乎仍然有某種原因。我不明白爲什麼它有效。 – Pete 2012-04-27 05:07:52