selectタグの属性についての発見

またJavascriptネタなんだけど、ゴメンナサイ。仕事柄使うもので

・・・でも全然使いこなしてないことが判明しました

selectのonchangeイベントで捕らえられるselectの値は

先日のダイアリーで、checkboxから発生するイベントで捕らえられるcheckboxの値といことで、常識的な挙動をしてましたけど。・・・また間抜けなんですけどテストしたところ。

また常識的なことでした
選んだoptionが反映されてます

実は知らなかった・・・よくわからん属性value

恥ずかしながら、実はこのselectのvalue属性を知らなかったです。挙動から言うと、これはvalue属性ではなくて、プロパティなのかね

alert($("selecthoge").options[$("selecthoge").selectedIndex].value);

なんて頓珍漢なコード書いてましたよ。
こんなことしなくても

alert($("selecthoge").value);

これで取れてしまうんですね。

こいつが面白いなと思ったところは、逆もできること

<select id="selectHoge">
    <option value="hoge1" >ほげ1</option>
    <option value="hoge2" >ほげ2</option>
    <option value="hoge3" >ほげ3</option>
</select>

こうなら

$("selecthoge").value = "hoge2"

で2番目の選択肢を選択状態にできる。valueが被ってた場合は上にあるほうが選択されるみたいです。

どこが「よくわからん」なの?ということなんですけど

<select id="selectHoge" value="hoge2">
    <option value="hoge1" >ほげ1</option>
    <option value="hoge2" >ほげ2</option>
    <option value="hoge3" >ほげ3</option>
</select>

と属性に直接書いても、2番目が選択状態にならないということ。なんでなんでしょうかね


以上コネタでした。