2012-04-27 77 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