通过mvc jQuery中的唯一ID选择元素

时间:2014-02-15 11:20:58

标签: jquery html asp.net-mvc

我试图通过唯一ID选择这些元素。在这种情况下,唯一ID为@item.cardID

@model IEnumerable<FunRanger.Models.CardModel>

foreach (var item in Model)
{
   <a name="spam" href="javascript:;" class="@item.cardID btn btn-primary">0 Spam</a>
   <a href="javascript:;" class=" @item.cardID btn btn-success">0 Loves</a>
   <a href="javascript:;" class=" @item.cardID btn btn-primary">0 Favorites</a>
   <a href="javascript:;" class=" @item.cardID btn btn-danger">0 Hates</a>
}

我将通过列表在视图页面上显示许多链接。我尝试在每个锚标签上使用jQuery通过ajax发布一些数据。

我会使用唯一ID在上面的每个锚点上使用ajax动作。

我已经使用名为@item.cardID的id和类,并且之前使用过它 -

for ID- $('#'+"@item.cardID") 
for Class- $('.'+"@item.cardID") 

现在对于所有左侧元素,那些应该只使用唯一ID我只留下选项是使用它的名称。所以我尝试了 -

<a name="spam" href="javascript:;" class="@item.cardID btn btn-primary">0 Spam</a>
现在

和jQuery -

<script type="text/javascript">
    $(function () {
            $('a[name=spam][Class="."+"@item.cardID"]').click(function () {
                alert("@item.cardID");
            });
    });
</script>

但这不起作用。如何在不破坏其他元素的情况下使用这个唯一ID?

1 个答案:

答案 0 :(得分:0)

您应该考虑利用HTML5的data-属性来存储元素上的元数据。 jQuery使用data()方法支持此功能。

foreach (var item in Model)
{
   <a name="spam" data-cardId="@item.cardID" class="btn btn-primary">0 Spam</a>
   ...
}

现在,将处理程序绑定到名称值为“spam”的任何链接:

$(function () {
        $('a[name=spam]').click(function (e) {
            e.preventDefault();
            var cardId = $(this).data('cardId');
            alert(cardId);
        });
});

参考:http://ejohn.org/blog/html-5-data-attributes/

参考:https://api.jquery.com/jQuery.data/