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

Jquery 在这种情况下,如何获取最近的属性?,jquery,Jquery,当用户单击可折叠div时,会显示“添加更多”按钮。在该按钮的cliik上,如何获取该按钮的数据属性 $(document).on('click', '.addmore', function(event) { var dataclciked = $(this).closest('.data').attr('data_city'); alert(dataclciked); }); 您能告诉我如何获取可折叠div的属性吗?首先,您所有的数据属性都不正确。它们应该是data-*,而不是

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

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

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

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

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

如果出于任何原因,您无法更改无效的
数据属性(尽管您确实应该更改),您可以使用
attr()
读取它们:


首先将
数据城市
更改为
数据城市
。然后你可以这样得到它:

  $(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);
   });

Try
var dataclciked=$(this).closest('.data>div').attr('data_city')()。你的小提琴很凌乱,拿一个源代码,而不是JQM生成的。您的html5数据属性错误,您需要遵循约定,然后才能使用
elem.data()
data.*
ya访问它,这是最令人震惊的部分;)@Kiran
data\u attr
无效。你必须更改它们。我已经为你更新了我的答案,但是再一次,您确实应该更改数据属性以遵循有效的syntax@skobaljic我认为,如果你是团队的一员,你应该在人们编写错误代码时向他们提供建议。如果更改数据属性需要几周的时间才能获得批准,那么项目管理中就存在更大的问题。我知道你的意图,我同意逻辑上的大调整,但是这是关于修复明显错误的代码,需要尽快更改。
  $(document).on('click', '.addmore', function(event) {      
         var dataclciked = $(this).closest('div').attr('data_city');
        alert(dataclciked);
   });