jQuery:如何从选定的datalist(html5)选项中获取特定数据属性的值?

时间:2012-11-10 14:17:05

标签: jquery jquery-selectors

HTML:

<input list="items" id="item">

<datalist id="items">
  <option value="A item"  data-xyz = "1" >
  <option value="aa item" data-xyz = "2" >
  <option value="C item"  data-xyz = "3" >
  <option value="D item"  data-xyz = "4" >
  <option value="E item"  data-xyz = "5" >
</datalist> 

<input type="button" id="button" value="Get xyz" />

JS:

$("#button").click(function(){
       alert($("#items option:selected").attr('data-xyz'));
});

link to jsbin

查询:

  

我只需要访问&#39; data-xyz&#39;来自选定的datalist    单击&#34;#按钮&#34;或任何事件。

     

jQuery版本:1.7.2

     

感谢。

1 个答案:

答案 0 :(得分:8)

datalist只是一个自动填充存储空间。由于它可以用于页面中的多个元素,因此它没有选定的属性。

您需要自己找到适用的选项,例如以下

$("#button").click(function() {
    var val = $('#item').val()
    var xyz = $('#items option').filter(function() {
        return this.value == val;
    }).data('xyz');
    /* if value doesn't match an option, xyz will be undefined*/
    var msg = xyz ? 'xyz=' + xyz : 'No Match';
    alert(msg)

})

DEMO:http://jsfiddle.net/shcRJ/