浏览器错误:选择下拉列表元素的add()方法无法按预期工作(IE)

探讨了在IE浏览器中,使用JavaScript操作Select下拉列表的Add方法时遇到的兼容性问题,包括如何正确地在列表末尾或指定位置添加Option元素。

问题

select对象的add方法不会将选项附加到列表的末尾。

浏览器

IE浏览器

用于在选择下拉列表的末尾附加一个option元素的Javascript代码:

var opt = document.createElement("option");
opt.name = "optName";
opt.value = "optValue";
var selObj = document.getElementById("seltest");
selObj.add(opt,null);

IE不支持W3C add方法,因此我们必须使用try / catch来使用其专有方法:

var opt = document.createElement("option");
opt.name = "optName";
opt.value = "optValue";
var selObj = document.getElementById("seltest");
try {
 selObj.add(opt,null);
} catch (e) {
   selObj.add(opt); // for IE only
  }
-------------------------------------------------- -------------------------------------------------- - 问题

选择对象的添加方法不会在列表中添加选项。 这类似于先前的问题(附加到列表的末尾),但解决方案略有不同。

浏览器

IE浏览器

用于将option元素添加到select下拉列表的Javascript代码:

var opt = document.createElement("option");
opt.name = "optName";
opt.value = "optValue";
var selObj = document.getElementById("seltest");
// let's say we want to add before the currently selected option
var optToAddBefore = selObj.options[selObj.selectedIndex];
selObj.add(opt,optToAddBefore);

IE不支持W3C add方法,因此我们必须使用try / catch来使用其专有方法。 对于第二个参数,我们必须传递选定的索引,而不是option元素:

var opt = document.createElement("option");
opt.name = "optName";
opt.value = "optValue";
var selObj = document.getElementById("seltest");
// let's say we want to add before the currently selected option
var optToAddBefore = selObj.options[selObj.selectedIndex];
try {
 selObj.add(opt,optToAddBefore);
} catch (e) {
   selObj.add(opt,selObj.selectedIndex); // for IE only
  }
更多错误,怪癖和不一致之处

From: https://bytes.com/topic/javascript/insights/799155-browser-bug-select-dropdown-elements-add-method-doesnt-work-expected-ie

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值