我想仅在所选选项不存在的情况下才附加到选择列表。目前,我有这个:
$('#columnsAvailable').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
有人可以帮我插入一个语句,检查“$(this).val()”是否已经存在,我不想插入重复的值?谢谢!
答案 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>"
);
}