在这种情况下如何获取最接近的属性?

时间:2015-02-05 13:52:52

标签: jquery

http://jsfiddle.net/ftjaybnm/1/

当用户点击可折叠的div时,“添加更多”'按钮显示。在该按钮的cliik上,我如何获取它的数据属性?

$(document).on('click', '.addmore', function(event) {
    var dataclciked = $(this).closest('.data').attr('data_city');
    alert(dataclciked);
});

你能告诉我如何获取可折叠div的属性吗?

2 个答案:

答案 0 :(得分:3)

首先,您的所有data属性都不正确。它们应为data-*,而不是data_*。此外,city数据属性位于最接近的.my-collapsible元素上,因此逻辑不正确。最后,您可以使用data()方法检索信息:

$(document).on('click', '.addmore', function (event) {
    var dataclicked = $(this).closest('.my-collaspible').data('city');
    alert(dataclicked);
});

Working fiddle

如果出于某种原因,您无法更改无效的data_属性(尽管确实应该),您可以使用attr()阅读它们:

$(document).on('click', '.addmore', function (event) {
    var dataclicked = $(this).closest('.my-collaspible').attr('data_city');
    alert(dataclicked);
});

答案 1 :(得分:0)

首先将data_city更改为data-city。然后你可以这样得到它:

  $(document).on('click', '.addmore', function(event) {      
         var dataclciked = $(this).closest('div').data('city');
        alert(dataclciked);
   });

其他明智的:

  $(document).on('click', '.addmore', function(event) {      
         var dataclciked = $(this).closest('div').attr('data_city');
        alert(dataclciked);
   });