单& lt; select>有多个选择选项

Single <select> has multiple selected options

本文关键字:选择 选项 lt select      更新时间:2023-09-26

我的标记是一个单选项下拉,这是标记的默认行为。我在里面有三个值,"No","Yes","All"。我试图改变选定的编程,因为我已经做了一千次之前,用以下代码(我使用JQuery 1.9.1):

$('#select').children(':selected').removeAttr('selected');
$('#select').children('option[value="yes"]').attr('selected', 'selected');
$('#select').children(':selected');

我甚至不知道这是怎么可能的,但不知何故,在Chrome 26.0.1410.65运行在10.8.3,将有两个选择的选项。UI中将只显示其中一个元素,但最后一行代码将返回两个元素。

这在Firefox 16.0.2中正常工作,所以我很困惑。有人知道这是一个怪癖的Chrome,或者如果这是正确的行为,它只是改变?

您可以这样做来选择所需的值

 $('#select').val('yes');

停止使用属性方法操作属性!老版本的jQuery允许这样做,但新版本不允许。

$('#select').children(':selected').prop("selected",false);
$('#select').children('option[value="yes"]').prop("selected",true);
//$('#select').children(':selected');

尽管Mohammad Adil指出.val()是处理此问题的更好方法

您不应该使用selected属性来更改所选择的选项。相反,使用你的下拉属性的selectedIndex

例如,在您的情况下,您可能需要这样:

document.getElementById('select').selectedIndex = 1;