0

このコードに問題があります。Firefox と Internet Explorer では問題なく動作しますが、Opera と Chrome ブラウザでは動作しません...

<script>
function planetselect()
{
optionen=document.getElementById('pstart').options;
for(i=0;i<optionen.length;i++)
{
if(optionen[i].value==67080)
{
  optionen[i].setAttribute('selected','selected');
  }
}
optionen=document.getElementById('pdest').options;
for(i=0;i<optionen.length;i++)
{
if(optionen[i].value==67080)
{
  optionen[i].setAttribute('selected','selected');
  }
}
}</script>
4

2 に答える 2

1

<script>タグは確実に閉じましたか?あなたが投稿したコードに問題があるとは思えないので、タグを閉じていないか、optionenまたはoptions変数が存在しないか有効ではありません

また、Chrome には、発生したエラーを表示する JavaScript コンソールがあることも知っておく必要があります。それを開くには、ctrl-shift-jです。それはあなたを大いに助けるはずです。

于 2013-07-31T20:24:48.317 に答える
1

変化する

optionen[i].setAttribute('selected','selected');

optionen[i].selected = true;

より一般的には、 を使用しsetAttributeて DOM プロパティを変更することは避けてください。うまくいくこともあれば、うまくいかないこともあります。

MDNから:

setAttribute() を使用して特定の属性 (特に XUL の値) を変更すると、属性がデフォルト値を指定するため、動作に一貫性がなくなります。現在の値にアクセスまたは変更するには、プロパティを使用する必要があります。たとえば、elt.setAttribute('value', val) の代わりに elt.value を使用します。

于 2013-07-31T20:20:07.250 に答える