首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于jquery中的数据属性在引导中选择值

基于jquery中的数据属性在引导中选择值
EN

Stack Overflow用户
提问于 2017-11-27 09:37:53
回答 2查看 2.9K关注 0票数 2

我对jquery/引导编码相当陌生,我希望实现以下目标。我有一个select (使用引导多重选择)和几个选项。在此列表中,我尝试选择与数组值匹配的所有选项(以下代码中为list1)。但是,我需要检查选项的数据属性(下面代码中的列表2),而不是查看选项的值op。

我的下拉

代码语言:javascript
复制
<form>
  <select class="form-control" id="list1" multiple="multiple">
    <option data-vendorid="001" value="001">some-value-1</option>
    <option data-vendorid="002" value="002">some-value-2</option>
    <option data-vendorid="003" value="003">some-value-3</option>
  </select>

  <select class="form-control" id="list2" multiple="multiple">
    <option data-vendorid="001" value="some-value-1">some-value-1</option>
    <option data-vendorid="002" value="some-value-2">some-value-2</option>
    <option data-vendorid="003" value="some-value-3">some-value-3</option>
  </select>
</form>

我的脚本

代码语言:javascript
复制
var arr = [{
    "attr-1": "attr-value-1",
    "attr-2": "attr-value-2",
    "id": "001"
}, {
    "attr-1": "attr-value-1",
    "attr-2": "attr-value-2",
    "id": "003"
}];

//If I look for the default value, it works:
for (var i = 0; i < arr.length; i++) {
    $('#list1').multiselect('select', arr[i].id);
}

//So I tried something like this, but can't figure it out
for (var i = 0; i < arr.length; i++) {
    $('#list2').multiselect('select', $(arr[i]).data('vendorid'));
}

检查我更新的小提琴

我们非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-27 13:59:51

基于您的评论,我认为您正在尝试进行如下数据映射:

代码语言:javascript
复制
var map = {};
$('#list2').find('option').each(function(index, elem) {
    map[$(elem).data('id')] = elem.value;
});

for (var i = 0; i < arr.length; i++) {
    $('#list2').multiselect('select', map[arr[i]['id']]);
}

根据多选择jQuery插件的文档.multiselect('select', String|Array)方法期望选择一个字符串或一个选项值数组。当您试图根据其他属性执行选择时,您必须创建一个“字典”,将存储的记录映射到选项值。上面的例子就是这么做的。

更新:

我只是更新了代码,以反映Fiddle中的确切属性名。

票数 0
EN

Stack Overflow用户

发布于 2017-11-27 09:53:08

使用

代码语言:javascript
复制
$('#list2').multiselect('select', $(arr[i]).data('id'));

.data()是jquery提供的函数,因此您需要首先使用$选择数组元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47507774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档