Data-dash属性在ASP.NET Razor foreach循环中的jQuery中不起作用

问题描述 投票:0回答:1

我在ASP.NET Razor foreach循环中有一些data-dash属性:

@foreach (var item in Model){
  <a class="btn btn-primary btn-sm EditBill" title="EDIT" 
                data-ItemId = "@item.Id">
                <i class="glyphicon glyphicon-edit"></i>
            </a> 
}

jQuery代码的工作原理如下:

$('.EditBill').click(function () {
     var ItemId = $(this).attr('data-ItemId');
});

但是以下替换不起作用(从调试器返回'undefined'):

$('.EditBill').click(function () {
      var ItemId = $(this).data('ItemId');
}

任何人都可以建议吗?谢谢堆!

jquery asp.net asp.net-mvc
1个回答
2
投票

现代浏览器自动将属性转换为小写,而在方法.data(key)中,参数key区分大小写。所以使用小写即.data('itemid')

此外,您可以使用Element.dataset property访问相同的

console.log($('.EditBill').data('itemid'), $('.EditBill')[0].dataset);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="btn btn-primary btn-sm EditBill" title="EDIT" data-ItemId="Yahoooooooo">
                1
            </a>
© www.soinside.com 2019 - 2024. All rights reserved.