Class HTMLOptionsCollection
- All Implemented Interfaces:
Serializable
,Cloneable
,org.htmlunit.corejs.javascript.ConstProperties
,org.htmlunit.corejs.javascript.debug.DebuggableObject
,org.htmlunit.corejs.javascript.Scriptable
,org.htmlunit.corejs.javascript.SymbolScriptable
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.htmlunit.corejs.javascript.ScriptableObject
org.htmlunit.corejs.javascript.ScriptableObject.KeyComparator
-
Field Summary
FieldsFields inherited from class org.htmlunit.corejs.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
Fields inherited from interface org.htmlunit.corejs.javascript.Scriptable
NOT_FOUND
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an instance.HTMLOptionsCollection
(HtmlUnitScriptable parentScope) Creates an instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a new item to the option collection.get
(int index, org.htmlunit.corejs.javascript.Scriptable start) Returns the object at the specified index.int
Returns the number of elements in this array.int
Returns the value of theselectedIndex
property.void
initialize
(HtmlSelect select) Initializes this object.item
(int index) Returns the object at the specified index.org.htmlunit.corejs.javascript.Scriptable
iterator()
void
JavaScript constructor.void
Sets the index property.void
void
remove
(int index) Removes the option at the specified index.void
setLength
(int newLength) Changes the number of options: removes options if the new length is less than the current one else add new empty options to reach the new length.void
setSelectedIndex
(int index) Sets the value of theselectedIndex
property.Methods inherited from class org.htmlunit.javascript.HtmlUnitScriptable
clone, equivalentValues, get, getBrowserVersion, getClassName, getDefaultValue, getDomNodeOrDie, getDomNodeOrNull, getPrototype, getScriptableFor, getStartingScope, getWindow, getWindow, getWithPreemption, has, hasInstance, initParentScope, makeScriptableFor, setClassName, setDomNode, setDomNode, setParentScope, setupPromise, setupRejectedPromise
Methods inherited from class org.htmlunit.corejs.javascript.ScriptableObject
applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, delete, delete, deleteProperty, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGeneratorFunctionPrototype, getGetterOrSetter, getGetterOrSetter, getIds, getObjectPrototype, getOwnPropertyDescriptor, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, getTypeOf, has, has, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, putProperty, querySlot, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setAttributes, setCommonDescriptorProperties, setExternalArrayData, setGetterOrSetter, setPrototype, size
-
Field Details
-
htmlSelect_
-
-
Constructor Details
-
HTMLOptionsCollection
public HTMLOptionsCollection()Creates an instance. -
HTMLOptionsCollection
Creates an instance.- Parameters:
parentScope
- parent scope
-
-
Method Details
-
jsConstructor
public void jsConstructor()JavaScript constructor. -
initialize
Initializes this object.- Parameters:
select
- the HtmlSelect that this object will retrieve elements from
-
get
Returns the object at the specified index.- Specified by:
get
in interfaceorg.htmlunit.corejs.javascript.Scriptable
- Overrides:
get
in classorg.htmlunit.corejs.javascript.ScriptableObject
- Parameters:
index
- the indexstart
- the object that get is being called on- Returns:
- the object or NOT_FOUND
-
put
- Specified by:
put
in interfaceorg.htmlunit.corejs.javascript.Scriptable
- Overrides:
put
in classHtmlUnitScriptable
-
item
Returns the object at the specified index.- Parameters:
index
- the index- Returns:
- the object or NOT_FOUND
-
put
Sets the index property.- Specified by:
put
in interfaceorg.htmlunit.corejs.javascript.Scriptable
- Overrides:
put
in classorg.htmlunit.corejs.javascript.ScriptableObject
- Parameters:
index
- the indexstart
- the scriptable object that was originally invoked for this propertynewValue
- the new value
-
getLength
public int getLength()Returns the number of elements in this array.- Returns:
- the number of elements in the array
-
setLength
public void setLength(int newLength) Changes the number of options: removes options if the new length is less than the current one else add new empty options to reach the new length.- Parameters:
newLength
- the new length property value
-
add
Adds a new item to the option collection.Implementation Note: The specification for the JavaScript add() method actually calls for the optional newIndex parameter to be an integer. However, the newIndex parameter is specified as an Object here rather than an int because of the way Rhino and HtmlUnit process optional parameters for the JavaScript method calls. If the newIndex parameter were specified as an int, then the Undefined value for an integer is specified as NaN (Not A Number, which is a Double value), but Rhino translates this value into 0 (perhaps correctly?) when converting NaN into an int. As a result, when the newIndex parameter is not specified, it is impossible to make a distinction between a caller of the form add(someObject) and add (someObject, 0). Since the behavior of these two call forms is different, the newIndex parameter is specified as an Object. If the newIndex parameter is not specified by the actual JavaScript code being run, then newIndex is of type org.htmlunit.corejs.javascript.Undefined. If the newIndex parameter is specified, then it should be of type java.lang.Number and can be converted into an integer value.
This method will call the
put(int, Scriptable, Object)
method for actually adding the element to the collection.According to the Microsoft DHTML reference page for the JavaScript add() method of the options collection, the index parameter is specified as follows:
Optional. Integer that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
- Parameters:
newOptionObject
- the DomNode to insert in the collectionbeforeOptionObject
- An optional parameter which specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.- See Also:
-
remove
public void remove(int index) Removes the option at the specified index.- Parameters:
index
- the option index
-
getSelectedIndex
public int getSelectedIndex()Returns the value of theselectedIndex
property.- Returns:
- the
selectedIndex
property
-
setSelectedIndex
public void setSelectedIndex(int index) Sets the value of theselectedIndex
property.- Parameters:
index
- the new value
-
iterator
public org.htmlunit.corejs.javascript.Scriptable iterator()
-