2015-02-05 58 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); 
    });