从Select2 4.0读取HTML5数据属性

时间:2015-05-15 22:06:47

标签: jquery jquery-select2-4

我有一个以这种方式定义的选择:

<select class="myselect">
  <option value="AL" data-foo="bar">Alabama</option>
    ...
  <option value="WY"  data-foo="biz">Wyoming</option>
</select>

在早期版本的Select2中,我可以轻松地检索数据值,如下所示:

alert($("#" + controlid).select2().find(":selected").data('foo'));

然而,这在Select 2 4.0

中不起作用

有任何想法或建议吗?

1 个答案:

答案 0 :(得分:1)

Select2 4.0.0就像标准<select>一样,所以这里的问题是:How do I read data-* attributes on an <option>?

现在,如果您只是想从已经可以检索的选项中获取数据属性,那么该问题中的答案应该按原样运行。重要的是要注意Select2不直接设置selected属性,它设置selected属性,因此您必须使用:selected选择器而不是{{ 1}}如果你想获得所选的选项。

您的问题有点广泛,因此您可能正在寻找如何使用模板功能访问这些属性。所以你的问题是:How do I read the attributes of an <option> in the templating functions?,它有一个Select2 3.5.x的答案,它仍然适用于4.0.0。

模板化函数的第一个参数应该是数据对象。假设您没有使用AJAX(因为[selected]不存在),数据对象具有属性<option>,它是数据对象表示的DOM元素。您可以通过执行element来获取数据属性,就像使用任何其他元素一样。