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

标签 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

查询:

I just need to access the value of 'data-xyz' from selected datalist option on click of "#button" or any event.

jQuery version: 1.7.2

Thanks.

最佳答案

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)

})

演示:http://jsfiddle.net/shcRJ/

关于jQuery:如何从选定的数据列表(html5)选项中获取特定数据属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322802/

相关文章:

javascript - 根据 ids 设置特定类的所有 div 的背景图像值

javascript - jQuery 中的 jQuery() 函数有什么作用?

jQuery :contains selector to search for multiple strings

javascript - Jquery .each() 范围问题(错误?)

javascript - 如果列包含特定值,则更改表行的颜色

javascript - 占位符不适用于 ajax

javascript - 如何定位仅包含特定文本的 <th> ?

jquery - 如何延迟加载背景图像

java - simple-json 正在整理我的数据

jQuery 非选择器和实时绑定(bind)