2013-10-25 40 views
0

實際數據-ID我與數據-id和值jQuery的獲得來自選擇

HTML網頁有一個選擇

<select id="s1"> 
     <option data-id="01">aaaa1</option> 
     <option data-id="23">bbb1</option> 
     <option data-id="451">ccc1</option> 
     <option data-id="56">ddd1</option> 

    </select> 

<p></p> 

JAVASCRIPT

$('#s1').change(function() { 
     var val = $(this).val(); 
     var val_id =$(this).find('option').data('id'); 
     $("p").html("value = " + val + "<br>" +"value-data-id = "+ val_id); 
}); 

我想要實現來自選定選擇器的al值和他的數據ID。我不明白爲什麼我只有第一個選項纔有數據ID。這是我的代碼http://jsfiddle.net/s55rR/ 請幫我找到一個錯誤。

+0

你是否嘗試過使用更加保守的'.attr(「data-id」)'? –

回答

6

你可以做$(this).find('option:selected').data('id')的。

4

您已選擇了多個元素$(this).find('option')),但僅.data()如果調用與長度一個jQuery> 1返回從第一元件的值:

描述:返回處的值jQuery集合中第一個元素的指定數據存儲區,由data(name, value)或HTML5 data-*屬性設置。

如果只想從data-id值用戶選擇<option>,那麼你需要只選擇該元素。

3

因爲你選擇的所有選項,和jQuery返回.data('id')第一個

var val_id =$(this).find('option:selected').data('id'); 

fiddle

+0

謝謝。這非常有幫助! – user2894088

+0

@ user2894088,不客氣=) – krasu