5

仅当所选选项不存在时,我才想附加到选择列表中。目前,我有这个:

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

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

4

2 回答 2

14

就像是

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

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

应该做的伎俩。

于 2013-03-08T16:00:42.047 回答
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>"
    );
}
于 2013-03-08T16:13:13.270 回答