0

我有几个带有 class="select" 的选择器元素。其中几个选项值重复。但我想找到出现在每个选择中的重复值,而不仅仅是例如。5 分中的 2 分。

这是我编辑的代码。

    var selector = $('.select')
    $('option', selector).each(function() {         
       if ($('option[value="' + $(this).val() + '"]', selector).length == 6) {
            $(this).clone().prop('selected', false).appendTo("#commonBranch_select");           
        }
    });

我试图让一个选择在所有其他 .select 选项中包含每个重复项的一个新选项。

其中 6 个,但所有这些中都存在“测试”,所以我希望在 #commonBranch_select 中使用它

<select class="select">
<option value="test">
test
</option>
</select>

我从新列表中删除了重复项

var map = {};
    $("#commonBranch_select option").each(function(){
        var value = $(this).text();
        if (map[value] == null){
            map[value] = true;
        } else {
            $(this).remove();
        }
    });

它有效,但可能可以做得更好:)

4

1 回答 1

0

您可以option像这样查找具有相同值的元素:

var $selector = $('.select')
$('option', $selector).each(function() {    
    if ($('option[value="' + $(this).val() + '"]', $selector).length > 1) {
        // do something
    }
});

或者,使用filter

var $duplicates = $('option', $selector).filter(function() {
    return $('option[value="' + $(this).val() + '"]', $selector).length > 1;
});
// now do something with $duplicates...
于 2013-08-23T14:01:43.117 回答