javascript - 删除重复的下拉选项并共享 2 个值

标签 javascript jquery

有很多 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/

相关文章:

javascript - prismjs:突出显示单个单词

javascript - 如何使用在浏览器中正确呈现的混合内部和外部 HTML 内容替换内部 HTML 内容

javascript - 你如何使用 AngularJS 或 Javascript 提供文件下载?

javascript - 使用 Jquery 删除点击元素

jquery - window.location.search 查询为 JSON

jQuery 替代 .load()?

javascript - 用于重复选项卡的 Jquery

javascript - 直接在 HTTP 响应中执行 javascript

jQuery 追加不起作用

javascript - 如何在集合中查找数组的存在?