使用jQuery将“selected”属性添加到下拉选项中

如何根据匹配某个变量的选项将“selected”属性添加到下拉菜单选项中?

以下是填充下拉列表的方式…

loginOptions = ["First", "Second", "Third"]; var Login = $( '#Login' ); for ( var i = 0; i < loginOptions.length; i++ ) { Login.append(''+ loginOptions[i] +''); } 

我想根据其值是否与另一个变量匹配,将一个选项标记为“已选择”。 所以如果loginOption[i]等于var existingLoginValue那么将该选项设置为’selected’

可以做的事情

 if(loginOptions[i] === existingLoginValue){ print 'selected'; }; 

谢谢!

我在你的方法结束时使用.val() ,这是基于值设置的,如下所示:

 $('#Login').val(existingLoginValue); 

同样,要获取值,请在没有任何参数的情况下调用它:

 var currentValue = $('#Login').val(); 

如果你只想做一个值,那么是的, val()有效。 否则,您也可以这样做:

 $option=$('').appendTo(Login); if (loginOptions[i] == existingLoginValue) { $option.attr('selected',true) } 

呃,有人指出这并没有多大意义,因为这意味着具有相同价值的多个选项。 我打算写这样的东西:

 existingLoginValues = ['foo','bar'] $option=$('').appendTo(Login); if (existingLoginValues.indexOf(loginOptions[i]) != -1) { $option.attr('selected',true) } 

除了(当然)IE6之外,大多数浏览器都支持indexOf函数。 请参阅“在JavaScript数组中查找项目的最佳方法?”

使用

 $('#Login').selectedIndex = i