当存在重复值时,按值选择第一个选项

时间:2016-08-30 12:41:43

标签: javascript jquery drop-down-menu

我有一个包含重复值的select列表。我没有权力改变这一点。

<select id="dropdown">
    <option value="1">Item 1</option>
    <option value="1">Item 1 again under a different name</option>
    <option value="2">Item 2</option>
</select>

在另一个地方,我有一个链接元素,点击后会调用$("#dropdown").val(1)。这个“项目1再次以不同的名称”被选择和显示。我想要选择“第1项”。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:1)

为此,您可以按option属性选择value元素,然后使用:first选择器。试试这个:

&#13;
&#13;
var value = 1;
$('#dropdown option[value="' + value + '"]:first').prop('selected', true);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dropdown">
  <option>Please select...</option>
  <option value="1">Item 1</option>
  <option value="1">Item 1 again under a different name</option>
  <option value="2">Item 2</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个:

 $("#dropdown option[value=1]:first").prop({selected:true});

答案 2 :(得分:0)

我猜下拉列表中只有一个重复值。首先,您需要找到该值,而不是选择相同值的第一个选项。

var arrDuplicate = [];
var duplicateVal = 0;
$("#dropdown option").each(function () {
if (arrDuplicate.indexOf($(this).val()) > -1)
  duplicateVal = $(this).val();
arrDuplicate.push($(this).val());
});

$("#dropdown option[value=" + duplicateVal + "]:first").attr("selected", "selected");