Wat betreft de HTMLOptionsCollection kwam ik wat eigenaardige dingen tegen. Volgens de W3C spec, kan ik vanuit zo'n collection een element by name opvragen. Zie: http://www.w3.org/TR/2003...tml#HTMLOptionsCollection
B.v. deze quote:
Opvragen per ID is wellicht niet super nuttig, aangezien een ID toch al uniek zou moeten zijn voor je hele document. In plaats van een element via de HTMLOptionsCollection op te vragen by id, kun je net zo goed meteen document.getElementById() gebruiken.
Wie weet hoe het nu zit met die named items?
De verschillende browsers gaan er overigens nogal verschillend mee om. Bij het uitvoeren van onderstaande HTML geeft Firefox 2 en Safari 3 alle 3x keer het bedoelde Object terug, Opera 9 faalt bij de "by name", en IE 7 doet het alleen bij de "by id" met de expliciete namedItem call, maar faalt bij gebruikmaking van de [] operator. (HTML 5 lijkt daar wat specifieker over te zijn: http://www.whatwg.org/spe...rk/#htmloptionscollection )
_
B.v. deze quote:
Echter, als ik me niet vergis mag een option element helemaal geen name attribute hebben. De reden van een dergelijk verbod snap ik niet helemaal, maar gezien dat feit dat dat niet mag is de bovenstaande uitleg niet helemaal helder, aangezien die wel spreekt van een name.An HTMLOptionsCollection is a list of nodes representing HTML option element. An individual node may be accessed by either ordinal index or the node's name or id attributes.
Opvragen per ID is wellicht niet super nuttig, aangezien een ID toch al uniek zou moeten zijn voor je hele document. In plaats van een element via de HTMLOptionsCollection op te vragen by id, kun je net zo goed meteen document.getElementById() gebruiken.
Wie weet hoe het nu zit met die named items?
De verschillende browsers gaan er overigens nogal verschillend mee om. Bij het uitvoeren van onderstaande HTML geeft Firefox 2 en Safari 3 alle 3x keer het bedoelde Object terug, Opera 9 faalt bij de "by name", en IE 7 doet het alleen bij de "by id" met de expliciete namedItem call, maar faalt bij gebruikmaking van de [] operator. (HTML 5 lijkt daar wat specifieker over te zijn: http://www.whatwg.org/spe...rk/#htmloptionscollection )
_
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <html> <body> <select name="test" id="foo_name"> <option name="x" value="1">optie 1</option> <option name="y" value="2">optie 2</option> </select> <select name="test" id="foo_id"> <option id="x" value="1">optie 1</option> <option id="y" value="2">optie 2</option> </select> <script type="text/javascript"> var fooName = document.getElementById("foo_name").options; alert( 'Getting by name :' + fooName.namedItem('x')); var fooID = document.getElementById("foo_id").options; alert( 'Getting by id :' + fooID.namedItem('x')); alert( 'Getting by id,using [] :' + fooID['x']); </script> </body> </html> |
It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.