我将一些隐藏的数据加载到数据列表中,并将其与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/
您的代码中有两个问题。首先,您需要val()
从input
元素而不是从获取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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句