<select id="hello">
<option data-title="foo" value="1" selected="selected">Abcdefg</option
</select>
为了获得选择的价值,我通常这样做:
$("#hello").val(); // returns 1
但是如果我想获得数据标题怎么办?
<select id="hello">
<option data-title="foo" value="1" selected="selected">Abcdefg</option
</select>
为了获得选择的价值,我通常这样做:
$("#hello").val(); // returns 1
但是如果我想获得数据标题怎么办?
尝试如下,
$('#hello option:selected').data('title');
尝试:
$('option:selected', '#hello').attr('data-title');
更新
虽然上述方法有效,但正如其他人所说,处理此问题的首选方法是使用数据 API。
$('option:selected', '#hello').data('title');
更新 2
在进一步研究这一点时,我发现这个页面解释了为什么使用attr
更可取,并概述了data
行为不端的情况。
更新 3
jsPerf证明这attr
比使用data
. 我仍在尝试找到有关原因的规范文档,或者 usingdata
是否比 using 更可取attr
。
这应该可以正常工作:
$('#hello :selected').data('title');
var title = $('#hello').find(':selected').data('title');