如果选项尚未存在,则附加到选择列表

时间:2013-03-08 15:58:27

标签: jquery

我想仅在所选选项不存在的情况下才附加到选择列表。目前,我有这个:

$('#columnsAvailable').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");

有人可以帮我插入一个语句,检查“$(this).val()”是否已经存在,我不想插入重复的值?谢谢!

2 个答案:

答案 0 :(得分:7)

这样的东西
var optionExists = ($('#columnsAvailable option[value=' + $(this).val() + ']').length > 0);

if(!optionExists)
{
    $('#columnsAvailable').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
}

应该这样做。

答案 1 :(得分:2)

您可以尝试这样的事情

//get all the elements in an array
var values = $('#columnsAvailable').children('option').map(function(i, e){
    return e.value || e.innerText;
}).get();

//check if new element exists in the array    
if( $.inArray($(this).val(), values) > -1 ) {
    $('#columnsAvailable').append(
        "<option value='" + $(this).val() + "'>" + $(this).text() + "</option>"
    );
}