gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 03:56:27 31 4
gpt4 key购买 nike

我对 jquery/bootstrap 编码相当陌生,想要实现以下目标。我有一个带有多个选项的选择(使用引导多重选择)。在此列表中,我尝试选择与数组值匹配的所有选项(下面代码中的 list1)。但是,我需要检查选项的数据属性(下面代码中的列表 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 !

非常感谢您的帮助

最佳答案

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

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

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

更新:
我刚刚更新了代码以反射(reflect)您的 Fiddle 中的确切属性名称。

关于javascript - 根据jquery中的数据属性在bootstrap multiselect中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47507774/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com