读取HTML5数据-属性从Select2 4.0



我有一个这样定义的选择:

<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

中不起作用

有什么想法或建议吗?

Select2 4.0.0就像标准的<select>一样工作,所以这里的问题是:我如何读取<option>上的data-*属性?

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

您的问题有点宽泛,因此您可能正在寻找如何使用模板函数访问这些属性。所以你的问题是:我如何在模板函数中读取<option>的属性?,它对Select2 3.5有一个答案。

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

最新更新