为selectize.js选项添加数据属性
Add data-attribute to selectize.js options
我的项目使用selectize.js。但我在数据属性方面有问题。我想将数据属性添加到选择选项中。我有这样的默认选择:
<option data-open-balance="false" selected="selected" value="1">PNP.SI.080416</option>
但当我在这个选择中添加selectize时,它变成了:
<div data-value="1" data-selectable="" class="selected">PNP.SI.080416</div>
我看到它的"项目对象"只得到值和文本。那么,如何将其他数据属性添加到其项对象中呢?
我看过文档,他们说如果你想向元素添加自定义属性,你应该使用dataAttr
选项,默认情况下是data-data
。因此,在您的情况下,代码将看起来像这样:
HTML
<select>
<option data-data='{"openBalance": true}' selected="selected" value="1">PNP.SI.080416</option>
</select>
JS
在这里,我们提供了自定义的渲染方法来绘制具有我们需要的属性的options
:
$('select').selectize({
render: {
option: function (data, escape) {
return "<div data-open-balance='" + data.openBalance + "'>" + data.text + "</div>"
}
}
})
UDATE
正如Kyborek所指出的,为了保护您的网站或web应用程序免受XSS的攻击,您应该在渲染回调中使用escape
方法。如果您想在data.text
中显示html
标记,也可以使用它。更新后的示例如下所示:
$('select').selectize({
render: {
option: function (data, escape) {
return "<div data-open-balance='" + escape(data.openBalance) + "'>" + escape(data.text) + "</div>"
}
}
})
相关文章:
- 无法将 json 数据添加到 pyjade 中的数据属性
- 添加数据属性及其值以使用纯javascript进行链接
- JavaScript / jquery:如果选择了单选按钮并且数据属性符合条件,则添加类
- 向ChartJS数据集添加其他属性
- 为selectize.js选项添加数据属性
- 动态添加数据时按数据属性查询JQuery选择器
- 数据属性在动态添加时不以所需的格式呈现,不转义双引号
- 将数据属性添加到标记并使用 JQuery 检索它
- 使用 jQuery 添加数据属性
- 映射 Json 数据并添加数据属性
- 是否可以向现有 JSON 数据添加新属性
- 和服:修改数据、分解字符串和添加新属性的功能
- 通过添加一些数据属性来防止特定 dom 的引导
- Vanilla JavaScript - 用于将类添加到具有特定数据属性的元素的语法
- jQuery在创建动态DOM元素时添加数据属性
- 添加具有self值的数据属性
- 如何将变量添加到附加的html数据属性中
- 正在尝试将数据属性值添加到其他页面上的输入中
- 添加数据属性值不工作
- 将json从php发送到autocomplete,并在输入中添加数据属性