# Interface HTMLSelectElement

All Superinterfaces:
  `Element, HTMLElement, Node`

public interface HTMLSelectElement extends HTMLElement
The select element allows the selection of an option. The contained options can be directly accessed through the select element as a collection. See the SELECT element definition in HTML 4.0.

See also the Document Object Model (DOM) Level 2 Specification.

Since:
  1.4, DOM Level 2

## Field Summary

### Fields declared in interface Node

`ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`
Modifier and Type
Field
Description
`static final short`
`ATTRIBUTE_NODE`
The node is an `Attr`.
`static final short`
`CDATA_SECTION_NODE`
The node is a `CDATASection`.
`static final short`
`COMMENT_NODE`
The node is a `Comment`.
`static final short`
`DOCUMENT_FRAGMENT_NODE`
The node is a `DocumentFragment`.
`static final short`
`DOCUMENT_NODE`
The node is a `Document`.
`static final short`
`DOCUMENT_POSITION_CONTAINED_BY`
The node is contained by the reference node.
`static final short`
`DOCUMENT_POSITION_CONTAINS`
The node contains the reference node.
`static final short`
`DOCUMENT_POSITION_DISCONNECTED`
The two nodes are disconnected.
`static final short`
`DOCUMENT_POSITION_FOLLOWING`
The node follows the reference node.
`static final short`
`DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC`
The determination of preceding versus following is implementation-specific.
`static final short`
`DOCUMENT_POSITION_PRECEDING`
The second node precedes the reference node.
`static final short`
`DOCUMENT_TYPE_NODE`
The node is a `DocumentType`.
`static final short`
`ELEMENT_NODE`
The node is an `Element`.
`static final short`
`ENTITY_NODE`
The node is an `Entity`.
`static final short`
`ENTITY_REFERENCE_NODE`
The node is an `EntityReference`.
`static final short`
`NOTATION_NODE`
The node is a `Notation`.
`static final short`
`PROCESSING_INSTRUCTION_NODE`
The node is a `ProcessingInstruction`.
`static final short`
`TEXT_NODE`
The node is a `Text` node.

## Method Summary

Modifier and Type
Method
Description
`void`
`add(HTMLElement element, HTMLElement before)`
Add a new element to the collection of `OPTION` elements for this `SELECT` .
`void`
`blur()`
Removes keyboard focus from this element.
`void`
`focus()`
Gives keyboard focus to this element.
`boolean`
`getDisabled()`
The control is unavailable in this context.
`HTMLFormElement`
`getForm()`
Returns the `FORM` element containing this control.
`int`
`getLength()`
The number of options in this `SELECT` .
`boolean`
`getMultiple()`
If true, multiple `OPTION` elements may be selected in this `SELECT` .
`String`
`getName()`
Form control or object name when submitted with a form.
`HTMLCollection`
`getOptions()`
The collection of `OPTION` elements contained by this element.
`int`
`getSelectedIndex()`
The ordinal index of the selected option, starting from 0.
`int`
`getSize()`
Number of visible rows.
`int`
`getTabIndex()`
Index that represents the element's position in the tabbing order.
`String`
`getType()`
The type of this form control.
`String`
`getValue()`
The current form control value.
`void`
`remove(int index)`
Remove an element from the collection of `OPTION` elements for this `SELECT` .
`void`
`setDisabled(boolean disabled)`
`void`
`setMultiple(boolean multiple)`
`void`
`setName(String name)`
`void`
`setSelectedIndex(int selectedIndex)`
`void`
`setSize(int size)`
`void`
`setTabIndex(int tabIndex)`
`void`
`setValue(String value)`

### Methods declared in interface Element

`getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS`
Modifier and Type
Method
Description
`String`
`getAttribute(String name)`
Retrieves an attribute value by name.
`Attr`
`getAttributeNode(String name)`
Retrieves an attribute node by name.
`Attr`
`getAttributeNodeNS(String namespaceURI, String localName)`
Retrieves an `Attr` node by local name and namespace URI.
`String`
`getAttributeNS(String namespaceURI, String localName)`
Retrieves an attribute value by local name and namespace URI.
`NodeList`
`getElementsByTagName(String name)`
Returns a `NodeList` of all descendant `Elements` with a given tag name, in document order.
`NodeList`
`getElementsByTagNameNS(String namespaceURI, String localName)`
Returns a `NodeList` of all the descendant `Elements` with a given local name and namespace URI in document order.
`TypeInfo`
`getSchemaTypeInfo()`
The type information associated with this element.
`String`
`getTagName()`
The name of the element.
`boolean`
`hasAttribute(String name)`
Returns `true` when an attribute with a given name is specified on this element or has a default value, `false` otherwise.
`boolean`
`hasAttributeNS(String namespaceURI, String localName)`
Returns `true` when an attribute with a given local name and namespace URI is specified on this element or has a default value, `false` otherwise.
`void`
`removeAttribute(String name)`
Removes an attribute by name.
`Attr`
`removeAttributeNode(Attr oldAttr)`
Removes the specified attribute node.
`void`
`removeAttributeNS(String namespaceURI, String localName)`
Removes an attribute by local name and namespace URI.
`void`
`setAttribute(String name, String value)`
Adds a new attribute.
`Attr`
`setAttributeNode(Attr newAttr)`
Adds a new attribute node.
`Attr`
`setAttributeNodeNS(Attr newAttr)`
Adds a new attribute.
`void`
`setAttributeNS(String namespaceURI, String qualifiedName, String value)`
Adds a new attribute.
`void`
`setIdAttribute(String name, boolean isId)`
If the parameter `isId` is `true`, this method declares the specified attribute to be a user-determined ID attribute .
`void`
`setIdAttributeNode(Attr idAttr, boolean isId)`
If the parameter `isId` is `true`, this method declares the specified attribute to be a user-determined ID attribute .
`void`
`setIdAttributeNS(String namespaceURI, String localName, boolean isId)`
If the parameter `isId` is `true`, this method declares the specified attribute to be a user-determined ID attribute .

### Methods declared in interface HTMLElement

`getClassName, getDir, getId, getLang, getTitle, setClassName, setDir, setId, setLang, setTitle`
Modifier and Type
Method
Description
`String`
`getClassName()`
The class attribute of the element.
`String`
`getDir()`
Specifies the base direction of directionally neutral text and the directionality of tables.
`String`
`getId()`
The element's identifier.
`String`
`getLang()`
Language code defined in RFC 1766.
`String`
`getTitle()`
The element's advisory title.
`void`
`setClassName(String className)`
`void`
`setDir(String dir)`
`void`
`setId(String id)`
`void`
`setLang(String lang)`
`void`
`setTitle(String title)`

### Methods declared in interface Node

`appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData`
Modifier and Type
Method
Description
`Node`
`appendChild(Node newChild)`
Adds the node `newChild` to the end of the list of children of this node.
`Node`
`cloneNode(boolean deep)`
Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
`short`
`compareDocumentPosition(Node other)`
Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
`NamedNodeMap`
`getAttributes()`
A `NamedNodeMap` containing the attributes of this node (if it is an `Element`) or `null` otherwise.
`String`
`getBaseURI()`
The absolute base URI of this node or `null` if the implementation wasn't able to obtain an absolute URI.
`NodeList`
`getChildNodes()`
A `NodeList` that contains all children of this node.
`Object`
`getFeature(String feature, String version)`
This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in .
`Node`
`getFirstChild()`
The first child of this node.
`Node`
`getLastChild()`
The last child of this node.
`String`
`getLocalName()`
Returns the local part of the qualified name of this node.
`String`
`getNamespaceURI()`
The namespace URI of this node, or `null` if it is unspecified (see ).
`Node`
`getNextSibling()`
The node immediately following this node.
`String`
`getNodeName()`
The name of this node, depending on its type; see the table above.
`short`
`getNodeType()`
A code representing the type of the underlying object, as defined above.
`String`
`getNodeValue()`
The value of this node, depending on its type; see the table above.
`Document`
`getOwnerDocument()`
The `Document` object associated with this node.
`Node`
`getParentNode()`
The parent of this node.
`String`
`getPrefix()`
The namespace prefix of this node, or `null` if it is unspecified.
`Node`
`getPreviousSibling()`
The node immediately preceding this node.
`String`
`getTextContent()`
This attribute returns the text content of this node and its descendants.
`Object`
`getUserData(String key)`
Retrieves the object associated to a key on a this node.
`boolean`
`hasAttributes()`
Returns whether this node (if it is an element) has any attributes.
`boolean`
`hasChildNodes()`
Returns whether this node has any children.
`Node`
`insertBefore(Node newChild, Node refChild)`
Inserts the node `newChild` before the existing child node `refChild`.
`boolean`
`isDefaultNamespace(String namespaceURI)`
This method checks if the specified `namespaceURI` is the default namespace or not.
`boolean`
`isEqualNode(Node arg)`
Tests whether two nodes are equal.
`boolean`
`isSameNode(Node other)`
Returns whether this node is the same node as the given one.
`boolean`
`isSupported(String feature, String version)`
Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
`String`
`lookupNamespaceURI(String prefix)`
Look up the namespace URI associated to the given prefix, starting from this node.
`String`
`lookupPrefix(String namespaceURI)`
Look up the prefix associated to the given namespace URI, starting from this node.
`void`
`normalize()`
Puts all `Text` nodes in the full depth of the sub-tree underneath this `Node`, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates `Text` nodes, i.e., there are neither adjacent `Text` nodes nor empty `Text` nodes.
`Node`
`removeChild(Node oldChild)`
Removes the child node indicated by `oldChild` from the list of children, and returns it.
`Node`
`replaceChild(Node newChild, Node oldChild)`
Replaces the child node `oldChild` with `newChild` in the list of children, and returns the `oldChild` node.
`void`
`setNodeValue(String nodeValue)`
The value of this node, depending on its type; see the table above.
`void`
`setPrefix(String prefix)`
The namespace prefix of this node, or `null` if it is unspecified.
`void`
`setTextContent(String textContent)`
This attribute returns the text content of this node and its descendants.
`Object`
`setUserData(String key, Object data, UserDataHandler handler)`
Associate an object to a key on this node.

## Method Details

### getType

String getType()
The type of this form control. This is the string "select-multiple" when the multiple attribute is `true` and the string "select-one" when `false` .

### getSelectedIndex

int getSelectedIndex()
The ordinal index of the selected option, starting from 0. The value -1 is returned if no element is selected. If multiple options are selected, the index of the first selected option is returned.

### setSelectedIndex

void setSelectedIndex(int selectedIndex)

### getValue

String getValue()
The current form control value.

### setValue

void setValue(String value)

### getLength

int getLength()
The number of options in this `SELECT` .

### getForm

HTMLFormElement getForm()
Returns the `FORM` element containing this control. Returns `null` if this control is not within the context of a form.

### getOptions

HTMLCollection getOptions()
The collection of `OPTION` elements contained by this element.

### getDisabled

boolean getDisabled()
The control is unavailable in this context. See the disabled attribute definition in HTML 4.0.

### setDisabled

void setDisabled(boolean disabled)

### getMultiple

boolean getMultiple()
If true, multiple `OPTION` elements may be selected in this `SELECT` . See the multiple attribute definition in HTML 4.0.

### setMultiple

void setMultiple(boolean multiple)

### getName

String getName()
Form control or object name when submitted with a form. See the name attribute definition in HTML 4.0.

### setName

void setName(String name)

### getSize

int getSize()
Number of visible rows. See the size attribute definition in HTML 4.0.

### setSize

void setSize(int size)

### getTabIndex

int getTabIndex()
Index that represents the element's position in the tabbing order. See the tabindex attribute definition in HTML 4.0.

### setTabIndex

void setTabIndex(int tabIndex)

### add

void add(HTMLElement element, HTMLElement before) throws DOMException
Add a new element to the collection of `OPTION` elements for this `SELECT` . This method is the equivalent of the `appendChild` method of the `Node` interface if the `before` parameter is `null` . It is equivalent to the `insertBefore` method on the parent of `before` in all other cases.

Parameters:
  `element` - The element to add.
  `before` - The element to insert before, or `null` for the tail of the list.
Throws:
  `DOMException` - NOT_FOUND_ERR: Raised if `before` is not a descendant of the `SELECT` element.

### remove

void remove(int index)
Remove an element from the collection of `OPTION` elements for this `SELECT` . Does nothing if no element has the given index.

Parameters:
  `index` - The index of the item to remove, starting from 0.

### blur

void blur()
Removes keyboard focus from this element.

### focus

void focus()
Gives keyboard focus to this element.