将数据或数组索引附加到锚标记

Attach data or array index to anchor tag

本文关键字:数据 数组 索引      更新时间:2023-09-26

我有一些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数据。

我要走的路涉及一个数组和一些对我来说不太正确的代码。 我想我错过了一些微不足道的东西。

您可以使用 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');

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

请特别查看在 JavaScript 中使用数据属性。