0

さて、私はこれをいじくり回してかなりの時間を費やしましたが、ほとんど進歩していません。私はたくさんの解決策を見てきましたが、私の状況にそれらを実装することはうまくいきません、そして私は本当に理由がわかりません。

一部の画像で、クリック時にドロップダウンメニューの選択された値を変更しようとしているため、ドロップダウンメニューで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関数は正常に機能しますが、ドロップダウンメニューがあるだけで、一連の画像を介して実行し、画像でリストのオプションを参照し、リストを非表示にする必要がありました。

4

1 に答える 1

2

に変更します

for(var i=0;i<index;i++;){

インデックス値が3になるため、ループの最後のインデックスで失敗している可能性があります。3回だけではなく、0、1、2、3でループします。

于 2013-02-18T18:00:25.477 に答える