有很多 javascript 和 jQuery 允许您根据值删除重复的选择选项,但我需要将其基于 2 个值。目前,我的下拉菜单将生成一个格式如下的选项列表:
<option data-id="truck" data-value="Manufacturer_Chevy" value="manufacturer_chevy">Chevy</option>
我有一些脚本可以让我查看 manufacturer_chevy
并删除重复项',但我需要带有 value="manufacturer_chevy"
和 data 的任何重复选项-value="Manufacturer_Chevy"
被删除。
基于 1 个值工作的一对:
$(".tag-base option").each(function() {
$(this).siblings("[value='"+ this.value+"']").remove();
});
还有...
var found = [];
$(".tag-base option").each(function() {
if($.inArray(this.value, found) != -1) $(this).remove();
found.push(this.value);
});
有什么想法吗?提前致谢
最佳答案
尝试使用 Multiple Attribute Selector像这样:
$(".tag-base option").each(function() {
var $t = $(this);
$t.siblings("[value='"+ $t.val() +"'][data-id='" + $t.data("id") + "']").remove();
});
这将从下拉列表中查找并删除重复项。在这种情况下,重复项被定义为“与另一个选项共享相同值和数据 ID 的选项。”
编辑:根据您的评论,您希望匹配值和数据-id,而不是数据-值。我编辑了代码来反射(reflect)这一点。
关于javascript - 删除重复的下拉选项并共享 2 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41511408/