Javascript 未在“我的选择对象”中设置选定的特性

Javascript 未在“我的选择对象”中设置选定的特性,javascript,jquery,html,Javascript,Jquery,Html,我想用jQuery更改下拉列表的值。我使用以下代码: <select id="id145" name="id145" class="dropdown" > <option selected="selected" value="0">1 - test</option> <option value="1">2 - test</option> </select> 我看到在我的下拉列表中选择了值1(2-test),

我想用jQuery更改下拉列表的值。我使用以下代码:

<select id="id145" name="id145" class="dropdown" >
    <option selected="selected" value="0">1 - test</option>
    <option value="1">2 - test</option>
</select>
我看到在我的下拉列表中选择了值1(2-test),但每当我使用inspector工具查看源代码时,我仍然看到:

<option selected="selected" value="0">1 - test</option>
<option value="1">2 - test</option>
1-测试
2-测试
我期望看到的是,但没有发生的是:

<option value="0">1 - test</option>
<option selected="selected" value="1">2 - test</option>
1-测试
2-测试
有人知道为什么吗?这可能吗


您说过,即使使用DOM检查器(例如,右键单击select并选择“Inspect元素”),您仍然可以在第一个选项上看到
selected=“selected”
,而不是第二个选项。(我可以证实这一点;我也是。)

所选的
属性设置
选项的默认状态
;它不一定反映其当前状态。发件人:

所选的
属性是一个布尔属性。它表示元素的默认值可选择性

(我的重点)

元素的
选定属性
告诉您它的当前状态,而不是属性。它类似于
input
元素上的
value
属性(它还设置默认值,而不是当前值)。如果
select
框位于
表单中,并且您在表单上调用了
reset
,则会再次选择第一个选项,因为这是选择框的默认选项

如果要知道当前是否选择了某个选项,则该信息在属性级别不可用。您必须检查该属性:

$('[name=id145]').val('1');
$(“[name=id145]选项”)。每个(函数(){
console.log(“选项”+this.value+”:选中?+this.Selected);//或$(this.prop)(“选中”)
});

1-测试
2-测试

旁注:您可以通过在
select
元素本身上使用
val
更简单地设置select的值:
$('[name=id145]')。val('1')
@T.J.Crowder即使使用chrome或Firefox的开发工具,我仍然看不到使用jQuery选择特定值时出现的
selected=selected
属性。很抱歉,“查看源代码”欺骗了我,我不记得你在查看
selected
。啊,这是真的。这让我有点困惑。所选值为默认状态。这是有道理的。谢谢你的解释。
<option value="0">1 - test</option>
<option selected="selected" value="1">2 - test</option>