计算值的数量

时间:2013-08-23 13:57:19

标签: jquery html-select

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

这是我编辑过的代码。

    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个但是'test'出现在所有这些中,所以我想在#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();
        }
    });

虽然有效,但可能会做得更好:)

1 个答案:

答案 0 :(得分: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...