2013-12-12 29 views
4
<span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="daily"><i></i>Daily</span> 
      <span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="1week"><i></i>1 Week</span> 
      <span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="monthly"><i></i>Month</span> 
      <span class="btn btn-block btn-inverse btn-icon glyphicons home" id="changeb" data-datac="3Month"><i></i>3 Month</span> 

的jQuery是獲取數據屬性值onclik鏈接/按鈕

$('#changeb').click(function() { 

     var d = $(this).data('datac');  
     alert(d); 
}); 

我需要獲得click事件的數據DATAC值,

+0

而不是'ID =「changeb」''使用類=「changeb」' –

回答

8

你的代碼是正確的,你有更多然後一個元素這是無效的相同的ID。該事件將綁定到第一個元素與DOM中的給定ID。使用普通的類而不是id來綁定事件。您可以使用class selector來綁定事件。

Live Demo

$('.btn').click(function() { 
     var d = $(this).data('datac');  
     alert(d); 
}); 
3

這應該做的伎倆:

var d = $(this).attr("data-datac"); 

此外,你需要改變你的HTML給每個元素一個單獨的ID。但綁定多個不同ID的點擊事件可能是一項乏味的任務。所以我會把它綁定到一個單獨的班級。例如:

HTML

<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb1" data-datac="daily"><i></i>Daily</span> 
<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb2" data-datac="1week"><i></i>1 Week</span> 
<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb3" data-datac="monthly"><i></i>Month</span> 
<span class="btn btn-block btn-inverse btn-icon glyphicons home dateChanger" id="changeb4" data-datac="3Month"><i></i>3 Month</span> 

的Javascript

$(".dateChanger").click(function() { 
    var d = $(this).attr("data-datac"); 
    alert(d); 
}); 
+0

它僅適用於第一個鏈接.. –

+1

,而不是常見的__id__使用__class__否則只有第一個元素將選擇 –

0

其簡單....

var data_value = $(this).attr("data-datac"); 
0

你無法將所有元素的獨特id。這就是爲什麼它只發生在第一個元素上。

0

你可以在jquery屬性使用attr元素的值一樣

$('.home').on('click', function() { 

    var d = $(this).attr('data-datac');  
    alert(d); 
}); 

FYI

如果要使用id's作爲選擇,你只能得到一個元素,同時在class你可以得到參考包含該類的所有元素

0

對每個元素使用唯一的ID

var d=$(this).attr('data-datac'); 
+0

'class'是最好的方法在這種情況下 – HTTP

+0

是的,類總是最好的解決方案 – ATeba