繁体   English   中英

基于jQuery中的数据属性选择引导多重选择中的值

[英]Select values in bootstrap multiselect based on data attributes in jquery

我是jquery / bootstrap编码的新手,想实现以下目标。 我有一个选择(使用引导程序多选)和几个选项。 在此列表中,我尝试选择与数组值匹配的所有选项(下面的代码中的list1)。 但是,我不需要查看选项的op值,而是需要检查选项的数据属性(以下代码中的清单2)。

我的下拉菜单

<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>

我的剧本

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'));
}

检查我更新的小提琴

非常感谢帮助

采用

$('#list2').multiselect('select', $(arr[i]).data('id'));

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

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

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']]);
}

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

更新:
我刚刚更新了代码,以在Fiddle中反映确切的属性名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM