-2
<select id="hello">
    <option data-title="foo" value="1" selected="selected">Abcdefg</option
</select>

为了获得选择的价值,我通常这样做:

$("#hello").val(); // returns 1

但是如果我想获得数据标题怎么办?

4

4 回答 4

7

尝试如下,

$('#hello option:selected').data('title');
于 2013-03-05T22:07:21.337 回答
3

尝试:

$('option:selected', '#hello').attr('data-title');

更新

虽然上述方法有效,但正如其他人所说,处理此问题的首选方法是使用数据 API

$('option:selected', '#hello').data('title');

更新 2

在进一步研究这一点时,我发现这个页面解释了为什么使用attr更可取,并概述了data行为不端的情况。

更新 3

jsPerf证明这attr比使用data. 我仍在尝试找到有关原因的规范文档,或者 usingdata是否比 using 更可取attr

于 2013-03-05T22:07:15.523 回答
0

这应该可以正常工作:

$('#hello :selected').data('title');
于 2013-03-05T22:08:00.657 回答
0
var title = $('#hello').find(':selected').data('title');
于 2013-03-05T22:07:39.160 回答