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>

因此,如果用户单击第一个 Add Deal 链接,我想thing1在脚本中的其他位置处理数据。如果他们点击第二个链接,我想处理thing2数据。

我要走的路涉及一个数组和一些我觉得不太合适的代码。我想我错过了一些微不足道的东西。

4

2 回答 2

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');

于 2012-04-27T01:15:35.413 回答
1

您可以使用HTML5 自定义数据属性 (data-*)来实现您想要的。

特别看一下在 JavaScript 中使用数据属性。

于 2012-04-27T01:10:19.670 回答