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>标签了吗?我真的看不出你发布的代码有问题,所以要么你没有关闭你的标签,要么你的optionenoptions变量不存在或无效

此外,您应该知道 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.value 代替 elt.setAttribute('value', val)。

于 2013-07-31T20:20:07.250 回答