这将有助于很大程度上看到相关的HTML片段。
在代码中,似乎elems[i]
是选择元素,elems[i].studentid
是读取命名属性studentid的尝试。相关的HTML可能是这样:
<select studentid="..." ...>
有一个叫没有标准的HTML选择元素属性studentid,即使该属性已被添加到选择元素,因此,它不会是可作为Firefox的一个属性(可能还有其他浏览器)。因此,测试失败的:
elems[i].studentid
了火狐将返回undefined
,其计算结果为假。但是,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;
}
定义“不起作用”。你期望'elems [i] .studentid'是什么? – RobG 2013-03-28 03:07:35
查看下面的评论罗布。由于 – Fandango68 2013-03-28 05:09:38