使用jQuery,你如何检查选择菜单中是否有一个选项,如果没有,分配一个选择的选项。

(选择生成与一个应用程序的PHP函数的迷宫,我刚刚继承,所以这是一个快速修复,而我得到我的脑袋周围的那些:)


当前回答

不需要使用jQuery:

var foo = document.getElementById('yourSelect');
if (foo)
{
   if (foo.selectedIndex != null)
   {
       foo.selectedIndex = 0;
   } 
}

其他回答

$("#select_box_id").children()[1].selected

这是在jquery中检查一个选项是否被选中的另一种方式。这将返回布尔值(True或False)。

[1]是选择框选项的索引

这是我的函数改变所选的选项。它适用于jQuery 1.3.2

function selectOption(select_id, option_val) {
    $('#'+select_id+' option:selected').removeAttr('selected');
    $('#'+select_id+' option[value='+option_val+']').attr('selected','selected');   
}

lencioni的答案是我推荐的。您可以使用“#mySelect option[value='yourDefaultValue']”更改选项的选择器('#mySelect option:last')来选择具有特定值的选项。更多关于选择器的信息。

如果你在客户端大量使用选择列表,请检查这个插件: http://www.texotela.co.uk/code/jquery/select/。如果您想看到更多使用选择列表的示例,请查看源代码。

如果你需要显式检查每个选项,看看是否有“selected”属性,你可以这样做。否则使用option:selected你将得到第一个默认选项的值。

var viewport_selected = false;      
$('#viewport option').each(function() {
    if ($(this).attr("selected") == "selected") {
        viewport_selected = true;
    }
});

你们选的人太多了。只需按值选择:

$("#mySelect").val( 3 );