jquery操作下拉框(select)的一些说明

 

   公司网站目前的访问用户中使用IE6.0的站50%以上,所以必需兼容IE6.0,使用jquery在IE6.0中设置下拉框时会有以下一些问题

//==========测试代码===============


    下拉框测试
    <script type="text/javascript" src="/js/jquery/jquery-1.3.js"></script>
    <script type="text/javascript">
    $(function(){
      
       var $city= $("#ddlCity");
       //填充一些数据
       for(var i=1;i<=10;i++){
        $city.append($("

  • ").attr("value",i).text("可以选择的城市第:" +i));
           }
          
           //$city.width("100px");//IE6.0下需要自己调整下拉框的宽度
           var t=6;
           //setTimeout("$(/"#ddlCity/").val("+ t +");",1); //IE6下解决一,IE,火狐取值多有问题
           try{$city.val(6);}catch(e){} //IE6下解决二,select至少有一个静态option,IE取值有问题
           //$city.val(6);//ie6报错,fireFox,IE8.0正常
           alert($city.val());
           $("#ddlProvince").val(101);//全部正常
         }); 
        </script>


       

  •    
  •        
  •        
  •        
  •        
  •    
       
  •      
  •    
        
       
       

  • //==========End 测试代码===================

    测试说明:

     A:静态select项目

      静态select项目(可以通过服务器端脚本填充),可以直接使用$("#下拉框id").val(选中的value)进行设置.

      设置后使用$("#下拉框id").val();可以正确获取其值.

     

     B:有一项静态的

       包含动态创建立的option时,使用$("#selectId").val()

       动态创建的(包含一项静态的option如: 

  • ),可以通过
  •    1.setTimeout("$(/"#下拉框id/").val("+value+")",1)设置.

       但是使用setTimeout后,使用$("#下拉框id").val();取值时则不正确,当然通常情况你的代码上下文保留有value值,

       没必要通过.val()去取,setTimeout缺点是异步执行的,setTimeout执行时的上下文通常不是当前函数域.

     

      2.使用try{$("#下拉框id").val();}catch(e){}来屏蔽错误,

      这个在firefox中跟IE6.0中多可以正常运行,但是IE6.0取值会出问题.

    C:全部动态创建

      这种情况下使用try在IE6.0中也无发设置.

     

     另外IE6.0对动态创建的下拉项目,不能自动调整select宽度,需要手动调整.

     

     

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值