Chrome和Opera中选项选择的问题

时间:2013-07-31 20:18:52

标签: javascript html google-chrome firefox dom

我对这个代码有疑问,它在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>

2 个答案:

答案 0 :(得分:1)

更改

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

optionen[i].selected = true;

更一般地说,避免使用setAttribute来更改DOM属性。有时候它会起作用,有时却不起作用。

来自the MDN

  

使用setAttribute()修改某些属性,最值得注意的是值   在XUL中,工作不一致,因为属性指定了默认值   值。要访问或修改当前值,您应该使用   属性。例如,使用elt.value而不是   elt.setAttribute('value',val)。

答案 1 :(得分:1)

您确定关闭了<script>代码吗?我发现你的代码没有问题,所以要么你没有关闭你的标签,要么你的optionenoptions变量不存在或有效

同样,你应该知道chrome有一个javascript控制台,可以显示你有任何错误。要打开它,它是ctrl-shift-j。这应该会对你有所帮助。