2014-02-15 55 views
0

我想通过唯一的ID选择这些元素。在这种情况下,唯一的ID是@item.cardID通过MVC中的唯一ID选择元素jQuery

@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动作。

我已经使用的ID和类名@item.cardID,并使用它作为在─

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

现在所有剩下的元素应该是只使用唯一的ID,我只留下下面的选择与使用名字。所以,我没有试戴

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

和jQuery NOW-

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

但是,这是行不通的。我应该如何使用这个独特的ID而不会破坏其他元素的行为?

+0

' asp.net'。你能告诉我什么是“@ item.cardID”吗? – Felix

+0

@Felix,它是在页面上呈现的列表的基于模型的id。请考虑我刚刚编辑的代码。 – user3163213

+0

那么渲染到浏览器后,“@ item.cardID”的值是多少? – Felix

回答

0

您应该考虑利用HTML5的data-属性来在元素上存储元数据。 jQuery通过data()方法支持这一点。现在

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

,您的处理程序绑定到任何关联的 “垃圾邮件” 的名称值:

$(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/