select元素添加option的add()方法 | try{}catch{}

1.javascript中的select元素添加option使用add()方法

select的add方法,第一个参数是需要被添加的option元素,第二个参数决定了被添加的位置

普通浏览器中,第二个参数是一个既有的option对象,添加的option元素被插入到它之前.

ie7浏览器中,第二个参数是一个索引,表示第n个既有的option对象.

ie8以上版本,传入两种对象它都能识别.

如果没有第二个参数,则插入在最后.

对于普通浏览器,如果传入的是索引数值,它不会认为是出错,还是会添加在最后

  

2.jquery中的$.browser检测浏览器类型

参考:jquery实战/chapter6/$.browser(my).html

 

3.try{}catch{}进行分支避免检测浏览器

try{先执行的代码} catch(err){出错时执行的代码}

对于普通浏览器,如果传入的是索引数值,它不会认为是出错,还是会添加在最后,

所以,使用try{}catch{}方法解决这个问题,必须把普通浏览器的适用方法放在try里面.

参考代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>try{}catch{}以及select添加option的add方法</title>
    <link rel="stylesheet" type="text/css" href="../common.css">
    <script type="text/javascript"
            src="../scripts/jquery-1.2.1.js"></script>
    <script type="text/javascript">
//try{先执行的代码} catch(err){出错时执行的代码}
//select的add方法,第一个参数是需要被添加的option元素,第二个参数决定了被添加的位置
//普通浏览器中,第二个参数是一个既有的option对象,添加的option元素被插入到它之前.
//ie7浏览器中,第二个参数是一个索引,表示第n个既有的option对象.
//ie8以上版本,传入两种对象它都能识别.
//如果没有第二个参数,则插入在最后.
//对于普通浏览器,如果传入的是索引数值,它不会认为是出错,还是会添加在最后,所以,使用try{}catch{}方法解决这个问题,必须把普通浏览器的适用方法放在try里面.
      $(function(){
        $('#testButton').click(function(){
           var selectElement=$('#testSubject')[0];     //通过下标可以把jquery对象转换为javascript对象
           try{                                        //普通浏览器和ie8以上版本执行以下代码
           selectElement.add(new Option('2.5'),selectElement.options[2])   
           }
           catch(err){                                 //ie7执行以下代码
           selectElement.add(new Option('2.5'),2)    
           }        
        }) 
      });
    </script>
  </head>

  <body class="plain">
    <select id="testSubject" multiple="multiple" size="5">
      <option value="1">One</option>
      <option value="2">Two</option>
      <option value="3">Three</option>
      <option value="4">Four</option>
    </select>
    <div>
      <button type="button" id="testButton">Click me!</button>
    </div>
  </body>
</html>

 

posted @ 2013-11-29 19:21  诗&远方  阅读(3137)  评论(0编辑  收藏  举报