根据jquery中的数据属性,在bootstrap multiselect中选择值

时间:2017-11-27 09:37:53

标签: javascript jquery bootstrap-multiselect

我是jquery / bootstrap编码的新手,想要实现以下目标。我有一个选择(使用bootstrap Multiselect)有几个选项。在此列表中,我尝试选择与数组值匹配的所有选项(下面代码中的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'));
}

检查my updated fiddle

非常感谢帮助

1 个答案:

答案 0 :(得分:0)

使用

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

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