从 Select2 4.0 读取 HTML5 数据属性
Reading HTML5 Data- Attributes from Select2 4.0
我有一个 select 是这样定义的:
<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>
一样工作,所以这里的问题是:How do I read data-*
attributes on an <option>
?.
现在,如果您只是想从您已经可以检索的选项中获取数据属性,那么该问题的答案应该按原样工作。需要注意的是Select2并没有直接设置selected
属性,它设置的是selected
属性,所以必须使用:selected
选择器而不是[selected]
] 如果你想得到选择的选项。
您的问题有点宽泛,因此您可能正在寻找如何使用模板函数访问这些属性。所以你的问题是:How do I read the attributes of an <option>
in the templating functions?,它有 Select2 3.5.x 的答案,它在 4.0.0.
中仍然有效
模板函数的第一个参数应该是数据对象。数据对象,假设你没有使用 AJAX(因为那里不存在 <option>
),有一个 属性 element
是 DOM 元素数据对象代表的。您可以通过执行 $(data.element).data("myAttribute")
从这些元素中获取数据属性,就像您对任何其他元素所做的那样。
我有一个 select 是这样定义的:
<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>
一样工作,所以这里的问题是:How do I read data-*
attributes on an <option>
?.
现在,如果您只是想从您已经可以检索的选项中获取数据属性,那么该问题的答案应该按原样工作。需要注意的是Select2并没有直接设置selected
属性,它设置的是selected
属性,所以必须使用:selected
选择器而不是[selected]
] 如果你想得到选择的选项。
您的问题有点宽泛,因此您可能正在寻找如何使用模板函数访问这些属性。所以你的问题是:How do I read the attributes of an <option>
in the templating functions?,它有 Select2 3.5.x 的答案,它在 4.0.0.
模板函数的第一个参数应该是数据对象。数据对象,假设你没有使用 AJAX(因为那里不存在 <option>
),有一个 属性 element
是 DOM 元素数据对象代表的。您可以通过执行 $(data.element).data("myAttribute")
从这些元素中获取数据属性,就像您对任何其他元素所做的那样。