很多朋友习惯用oSelect.options[n].remove()这样的方法来删除下拉框内的选项,而且这样在IE里也能很好的使用,但是很不幸的是这个不是标准方法,是微软的IE实现的一个方法,在firefox等其他浏览器里就不能被支持。标准的方法是把 oSelect.options.length值改变来删除options,但是这样的话就不好灵活的删除某一个option了,不过还是有变通的办法,就在删除前把要删除的option移动到最后一个,然后把整体的options.length --,就达到目的了,讲到这个偶有想起了数据结构那门课。
对了,补充一点,options.add方法也不是标准方法,所以添加option用oSelect.options[oSelect.length] = option;这样的方法来添加才是跨浏览器的方法。
function delete(){
var sel=$("#language").get(0);
var opts=sel.options;
alert($.browser.msie);
if($.browser.mozilla){
sel.remove(2);
}else{
opts.remove(2);
}
alert('ddd');
$("#language").combobox({width:150,rebuild:true});
return false;
}
function add(){
//$("#language").append($('<option value="Deutsch" >Deutsch</option>'));
//var newElem = document.createElement("OPTION");
//newElem.text = "Freddy";
//newElem.value = "Freddy Mercury";
//document.getElementById('language').options.add(newElem);
//$("#language").get(0).options.add(newElem);
var opts=$("#language").get(0).options;
opts[opts.length]=new Option('Freddy Mercury','Freddy');
$("#language").combobox({width:150,rebuild:true});
return false;
}
1 楼
tinguo002
2010-04-27
呃 firefox 下拉框添加删除把我难住了咯
在这里看到了一半的答案咯
为什么是一半呢?
楼主能贴个HTML 出来么 要不看的不太明白呀
在这里看到了一半的答案咯
为什么是一半呢?
楼主能贴个HTML 出来么 要不看的不太明白呀