获取数据列表的数据属性
Get data attribute of Datalist
我将一些隐藏的数据加载到数据列表中,并将其与data属性绑定。
如果选择了值,我想获取相应数据属性的值。这是我的代码:
<input list="browser" id="number">
<datalist id="browser">
<option data-customValue="Abc" value="Firefox">1</option>
<option data-customValue="Def" value="Chrome">2</option>
<option data-customValue="Ghi" value="Explorer">3</option>
</datalist>
$('#number').on('input', function() {
var value = $('#browser').val();
alert($('#browsers [value="' + value + '"]').data('customValue'));
});
就我而言,我只得到undefined
作为回应。
这是小提琴:https://jsfiddle.net/bd4rpztk/1/
代码中有两个问题。首先,您需要从input
元素获取val()
,而不是datalist
。其次data
属性名称应为小写,否则会干扰 jQuery 的内部缓存。考虑到这一点,请尝试以下操作:
<input list="browser" id="number">
<datalist id="browser">
<option data-customvalue="Abc" value="Firefox">1</option>
<option data-customvalue="Def" value="Chrome">2</option>
<option data-customvalue="Ghi" value="Explorer">3</option>
</datalist>
$('#number').on('input', function() {
var value = $(this).val();
alert($('#browser [value="' + value + '"]').data('customvalue'));
});
工作示例
请注意,您的逻辑可能需要修改,以满足直接在input
中键入值的人。
相关文章:
- 序列化数据属性中对象的最可靠方法
- jQuery最近父级的数据属性选择器
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 获取数据列表的数据属性
- 根据不同长度的数据属性对无序列表中的 li 进行排序(无 jquery)
- 基于数据属性的选择下拉列表中的设置选项
- 获取点击列表视图项的自定义数据属性;弹出;JQM.
- 获取没有以值开头的数据属性的所有列表项
- 尝试输出唯一数据属性列表(jQuery/Java)
- 如何使用数据属性而不是它们的值来链接两个下拉列表
- ASP.NET中项目符号列表的数据属性
- JQuery从列表中获取所有数据属性
- 在JavaScript中从列表中的对象获取数据属性
- 按数据属性对页面上的锚点列表进行排序
- 如何从列表中获取每个元素的数据属性
- 将数据属性从“喜欢”按钮复制到父列表项
- 如何获取元素列表的数据属性
- 按数据属性显示列表中的前三项
- 按数据属性排序列表项,先按字母顺序排序,然后按数字排序
- 自定义数据属性 - JavaScript - 如何从节点列表中选择元素