检查是否存在选项,添加它们,如果它们不存在,并设置为“已选择”

问题描述:

1)以下代码附加在选定值的一些选项一个选项检查是否存在选项,添加它们,如果它们不存在,并设置为“已选择”

$('#product').on('change',function(){ 

    if($(this).val()!=='Free'){ 

    $("#license option:selected").remove(); 
    $("#license").append("<option value=''> -- Select --</option>").attr('selected','selected'); 
    $("#license").append("<option value='1'>1</option>").val('Licenza'); 
    $("#license").append("<option value='2'>2</option>").val('2'); 
    $("#license").append(" <option value='3'>3</option>").val('3'); 
    }else{ 
    $("#license").find('option').remove().end().append("<option value='free'> Free</option>").val('free'); 
    }    
    }); 

的问题是,在每个变化在选择id =“#product”后,所有4个选项都被追加。 在哪里我需要插入.length来检查选项是否存在? 2)另外,如果选项不存在,并且它们被添加到select id =“#license”,我不能将第一个选项值(“--select--”选项)设置为选中一。

我试图与

.attr('selected','selected'); 

,但它不会工作;

希望解释清楚。 任何帮助将不胜感激。

编辑

这里有一个link到unterstand情况

$("#license").append("<option value=''> -- Select --</option>").attr('selected','selected'); 
$("#license").append("<option value='1'>1</option>").val('Licenza'); 
$("#license").append("<option value='2'>2</option>").val('2'); 
$("#license").append(" <option value='3'>3</option>").val('3'); 

.val(),这里attr('selected','selected')方法是使用添加属性为license选择...所以要添加属性valueselected为您的许可证选择...

您可以删除.val().attr()并把它放在你的追加字符串...是这样的:

$("#license").append("<option value='' selected> -- Select --</option>"); 
$("#license").append("<option value='Licenza'>Licenza</option>"); 
$("#license").append("<option value='2'>2</option>"); 
$("#license").append(" <option value='3'>3</option>"); 

Fiddle Sample

+0

是的!就是这个。最后这么简单。非常感谢您的帮助! – Someone33 2013-05-14 02:42:41