【问题标题】:Reading HTML5 Data- Attributes from Select2 4.0从 Select2 4.0 读取 HTML5 数据属性
【发布时间】:2015-07-27 23:10:33
【问题描述】:

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

<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 之外?在模板内部?您当前遇到的问题是什么?

标签: jquery jquery-select2-4


【解决方案1】:

Select2 4.0.0 就像标准的&lt;select&gt; 一样工作,所以这里的问题是:How do I read data-* attributes on an &lt;option&gt;?

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

您的问题有点宽泛,因此您可能正在寻找如何使用模板函数访问这些属性。所以你的问题是:How do I read the attributes of an &lt;option&gt; in the templating functions?,它有一个 Select2 3.5.x 的答案,它在 4.0.0 中仍然有效。

模板函数的第一个参数应该是数据对象。假设您没有使用 AJAX(因为那里不存在 &lt;option&gt;),数据对象有一个属性 element,它是数据对象所代表的 DOM 元素。您可以通过执行$(data.element).data("myAttribute") 来从这些元素中获取数据属性,就像使用任何其他元素一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多