さて、私はこれをいじくり回してかなりの時間を費やしましたが、ほとんど進歩していません。私はたくさんの解決策を見てきましたが、私の状況にそれらを実装することはうまくいきません、そして私は本当に理由がわかりません。
一部の画像で、クリック時にドロップダウンメニューの選択された値を変更しようとしているため、ドロップダウンメニューでonchangeイベントが発生します。
<script type="text/javascript">
function parse_theme(input){
var index = document.getElementById('themes').length; /* this bit is working fine */
for(var i=0;i<=index;i++;){
if(document.getElementById('themes').options[i].value == input){ /*error is here */
document.getElementById('themes').selectedIndex = i;
}
}
}
</script>
そしてhtml:
<select id="themes" style="display:none;" onchange="selectTheme()">
<option value="default" selected="selected">default</option>
<option value="ambiance">ambiance</option>
<option value="cobalt">cobalt</option>
</select>
<img id="default" onclick="parse_theme(this.id)" src="images/default.png" width="10" height="10">
<img id="ambiance" onclick="parse_theme(this.id)" src="images/ambiance.png" width="10" height="10">
<img id="cobalt" onclick="parse_theme(this.id)" src="images/cobalt.png" width="10" height="10">
そして、「Uncaught TypeError:Undefinedのプロパティ'value'を読み取れません」と表示されます。
onchange関数は正常に機能しますが、ドロップダウンメニューがあるだけで、一連の画像を介して実行し、画像でリストのオプションを参照し、リストを非表示にする必要がありました。