我下面的代码在 Firefox 中完美运行..但在 Safari 中不行。当我使用 Safari 调试时,它只是说存在解析错误,就在第一个左大括号 {
之后function setVals4(class,val)
{
var array = document.getElementsByTagName("select");
for (var g = 0; g < array.length; g++)
{
sel = array[g]
//sel = document.myform.sel[g];
for (i=0; i<sel.options.length; i++)
{
//alert(sel.options[i].value)
if (sel.className == class)
{
if (sel.options[i].value == val)
{
sel.selectedIndex = i;
}
}
}
}
}
有谁能解释一下为什么吗?救命!
最佳答案
class
是 JavaScript 中的保留字,尽管它没有用于任何用途(它在 ECMA spec 中被列为“ future 保留字”)。如果您将参数名称更改为 clazz
(这是常见的事情)或 foo
或其他名称,应该可以解决问题。
(在 sel = array[g]
之后还缺少一个分号,但是没关系,该语言此时允许 semicolon insertion。不过,最好包含它们,特别是如果您想要的话到 minify/pack/compress 您的代码。)
关于javascript - 令人困惑的 Safari Javascript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326823/