当前位置: 代码迷 >> Web前端 >> 关于select 添加 删除 option 的兼容性有关问题
  详细解决方案

关于select 添加 删除 option 的兼容性有关问题

热度:668   发布时间:2012-11-23 00:03:29.0
关于select 添加 删除 option 的兼容性问题
很多朋友习惯用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 出来么   要不看的不太明白呀
  相关解决方案