2015-02-05 76 views
-2

http://jsfiddle.net/ftjaybnm/1/如何在这种情况下获取最近的属性?

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

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

你能告诉我如何获取collapsible div的属性吗?

+1

尝试'变种dataclciked = $(本).closest( '数据> DIV ')ATTR(' data_city') ;'(http://jsfiddle.net/ftjaybnm/2/)。 – haim770 2015-02-05 13:56:40

+0

你的小提琴很混乱,拿一个源代码,而不是JQM生成的。你的html5数据属性是错误的,你需要遵循惯例,你可以用'elem.data()'来访问它。 – skobaljic 2015-02-05 13:57:01

回答

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); 
}); 
+0

'data_ *'ya,这是最令人震惊的部分;) – 2015-02-05 13:58:16

+0

我需要读取data_attr,但不读取数据 – Kiran 2015-02-05 13:58:43

+0

@Kiran'data_attr'无效。你*将*必须改变它们。 – 2015-02-05 13:59:41

0

首先改变data_citydata-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); 
    });