使用jquery的data-id属性?

时间:2014-07-15 14:16:56

标签: javascript jquery backbone.js underscore.js marionette

我正在使用jQuery。我需要获取所点击项目的data-id并将其传递给网络服务。如何获取data-id属性?

我的HTML看起来像这样:

<ul class="nav nav-pills">
    <li class="onselectedCategory" data-id="12"><a href="javascript:;;">12</a></li>
    <li class="onselectedCategory" data-id="23"><a href="javascript:;;">23</a></li>
    <li class="onselectedCategory" data-id="34"><a href="javascript:;;">34</a></li>
    <li class="onselectedCategory" data-id="45"><a href="javascript:;;">45</a></li>
    <li class="onselectedCategory" data-id="56"><a href="javascript:;;">56</a></li>
</ul>

我的JavaScript看起来像这样:

events{
      "click li.onselectedCategory": "selectCategory"
    }

selectCategory: function(event){
      event.preventDefault();
        var _selectedValue = $(this).data('id'); 
        alert("Selected Value : "+_selectedValue);
    },

3 个答案:

答案 0 :(得分:6)

试试这个:

$(".onselectedCategory").click(function(){ 
    alert($(this).data("id")); 
});

onselectedCategory是一个类,因此您需要使用.引用它,而不是使用用于idp的#>

答案 1 :(得分:3)

#data-id更改为data-id

 $(".onselectedCategory").click(function(){ 
   alert($(this).attr("data-id")); 
 })

编辑主干

 selectCategory: function(event){
        event.preventDefault();
        var selectedValue = "";
        if($(e.target).is('li')) {
            selectedValue =$(e.target).attr('data-id');
        } else {
           selectedValue =$(e.target).parent().attr('data-id');
        }       
        alert("Selected Value : "+ selectedValue);
    },

答案 2 :(得分:0)

onselectedCategory类必须位于标签<a>

<li><a class="onselectedCategory" data-id="12" bla,bla,bla...</li>

$(".onselectedCategory").click(function(){ alert($(this).data("id")); });