选择'之间的区别是什么?和' defaultSelected'构建HTMLOptionElement时?

时间:2017-07-28 17:35:29

标签: javascript

来自MDN

  

defaultSelected - 可选
  用于设置所选属性的布尔值   值,即这将是所选的默认值   在首次加载页面时的元素中。如果不是这样的话   如果指定,则使用默认值false。请注意,值为true   如果尚未选择,则不会将选项设置为选中。

     

已选择 - 可选
  一个布尔值,用于设置选项的选定状态;   默认值为false(未选中)。如果省略,即使   defaultSelected参数为true,未选中该选项。

这对我来说非常不清楚。 defaultSelected确定是否"这将是选择的默认值",但是后面的一个句子说"如果尚未选择,则值为true不会将选项设置为选中&# 34 ;.所以...它没有设置它被选中?如果它已被选中,它只会将其设置为已选择?

selected声称还设置了所选状态。如果省略,则无论defaultSelected如何,都不会选择该选项。那么... defaultSelected什么都不做?

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

defaultSelected属性表示元素的初始(默认)选择状态,并与 selected HTML属性相对应。 selected属性表示当前的选择状态,也就是用户实际在浏览器中看到的选择状态。

当用户选择一个选项时,仅selected属性被更改,而该属性和defaultSelected属性则保持不变(尽管它们仍然可以通过编程方式进行更改)。例如,您可以使用它来将某些设置重置为默认设置。

所以我会说您通常会使用其中一个

 new Option(text, value, true, true)

new Option(text, value, false, false)

为第3个和第4个参数设置不同的值意味着您将创建一个选项,该选项是默认值,但当前未选择,反之亦然。

我也觉得文档很混乱,但我想是

  

defaultSelected-<...>请注意,如果尚未选择true,则不会将其设置为selected

仅仅表示-如果将defaultSelected设置为true,并不意味着该选项将被实际选择,它只是将选项设置为默认的选定值。要选择它,您还必须设置selected属性。

此外,当您在HTML中添加selected属性时,相应的DOM元素会将defaultSelectedselected属性都设置为 true ,因此,和当前选择的值相同。

以下是有关DOM元素的属性和属性的相关问题的有用答案:https://stackoverflow.com/a/6004028/1630480

答案 1 :(得分:0)

在我看来 defaultSelected = true意味着代表用户做出决定。我注意到defaultSelected具有true设置的'option'在呈现的html中具有“selected”html属性,但它不是列表中的选定项。打败我为什么,但我理解它的意图。