查看相关的 HTML 片段将有很大帮助。
在代码中,它似乎elems[i]
是一个 select 元素,并且elems[i].studentid
试图读取一个名为studentid的属性。相关的 HTML 可能类似于:
<select studentid="..." ...>
没有称为studentid的标准 HTML select 元素属性,因此即使该属性已添加到 select 元素中,它也不会在 Firefox(可能还有其他浏览器)中作为属性使用。因此测试失败:
elems[i].studentid
Firefox 将返回的位置undefined
,其计算结果为 false。但是,IE 确实将非标准属性添加为属性,因此如果已设置属性,则 IE 可能会通过测试。
要访问非标准属性,应该使用getAttribute方法来实现跨浏览器兼容性,因此测试可能是:
elems[i].hasAttribute('studentid') && elems[i].getAttribute('studentid') == studid ...
测试中似乎没有任何价值hasAttribute
,因此可能会放弃。由于elems[i]
多次使用,我还将存储结果:
var elem = elems[i];
if (elem.getAttribute('studentid') == studid && elem.selectedIndex == 0) {
elem.selectedIndex = 1;
}