selectedIndex在firefox中不起作用,它来自于一个数组元素
selectedIndex does not work in firefox, from an array element that is
为什么这段代码可以在IE中工作,而不能在Firefox中工作?
elems = document.forms[0].getElementsByTagName("select");
for (i = 0; i < elems.length; i++) {
if (elems[i].studentid && elems[i].studentid == studid && elems[i].selectedIndex == 0)
elems[i].selectedIndex = 1;
}
看到相关的HTML片段将大有帮助。
在代码中,elems[i]
似乎是一个选择元素,而elems[i].studentid
试图读取名为studentid的属性。相关的HTML可能像这样:
<select studentid="..." ...>
没有名为studentid的标准HTML选择元素属性,因此即使该属性已添加到select元素中,它也不能作为Firefox(可能还有其他浏览器)中的属性使用。因此,在:
处测试失败elems[i].studentid
, Firefox将返回undefined
,计算结果为false。但是,IE确实添加了非标准属性作为属性,因此如果设置了该属性,则在IE中可以通过测试。
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;
}
相关文章:
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 使用事件更改数组的一个元素
- 使用javascript匹配字符串中数组的一个元素
- 如果一个键匹配,如何删除数组元素
- 将排序数组的数组元素移动到具有特殊逻辑的另一个位置
- jQuery从数组扩展一个json元素
- Javascript关联数组:推送一个对象会重写其他数组元素
- 可以使用Array.splice()通过在数组最后一个元素之外的索引处添加元素来创建稀疏数组吗
- 在一个对象的Javascript数组中,如果一个特定的数组元素本身就是一个对象数组,我如何通过名称/ID来定位该元素
- 我如何获得一个JS数组,它有一些元素也是数组,并使ALL数组元素成为顶级元素
- 使用Knockout.Js将数组绑定到表,并将数组的一个项绑定到另一个元素
- AngularJs过滤到单个数组元素并输出一个属性
- 在php中,找到显示的数组元素,并提供到下一个和上一个的链接
- Javascript将数组元素交换到另一个索引并删除旧索引
- 如何将数组元素拆分为2,并返回一个已拆分原始元素的新数组
- 如果不使用JavaScript跳到下一个,请检查数组元素是否存在
- Json-在数组元素之间插入一个新对象
- 计算JavaScript数组元素的出现次数,并放入一个新的2d数组
- 如何用另一个给定的数组元素替换数组元素
- 我如何得到Json数组元素一个接一个的jquery上不同的id'