zoukankan      html  css  js  c++  java
  • jquery实战定宽(二)

    上一节,我提了个问题给大家,说是用jquery对象方法来封装对象,你们做好了吗,现在我把我自己写的代码,供大家参考,当然了,我写的肯定不是最好的,就当时抛砖引玉吧,你们更好,

    ;(function($){
        $.extend($.fn,{
            fixedWidth : function(options){
                var options = $.extend({},$.fn.fixedWidth.defaults,options);
                //函数体
                var str1;  //这个变量要定义在this.each外面,否则return时,在html调用,会取不到这个值,这个要感谢我的同事,张栋
                  this.each(function(){
                    var str= $(this).text();
                    var length = options.length;
                    var char = options.char;
                    //
                       if(!char){var char ="..."}    
                    var num = length - lengthB(str);
                    if(num<0){
                        var _len= length-lengthB(str);
                        str1 = substringB(str,length-lengthB(char))+char;
                        
                    }
    
                    //
                    function lengthB(str){
                        var num=0,len =str.length;
                        if(len){
                            for(i =0; i<len;i++){
                                if(str.charCodeAt(i)>255){
                                num+=2;
                                }else{
                                num+=1;    
                                }
                            }
                        }else{
                            return 0;
                            }
                        return num;
                       }
    
    
                function substringB(str , length1){
                    var temp="",num=0;
                    _len = lengthB(str);
                    if(_len){
                        if(_len<length1){
                            return str;
                        }else{
                                for(var i =0; i<length1; i++){
                                    if(num>=length1){
                                        break;
                                        }
                                    if(str.charCodeAt(i)>255){
                                        num+=2;
                                        temp+=str.charAt(i);
                                        }else{
                                            num+=1;
                                            temp+=str.charAt(i);
                                            }
                                }
                                return temp;
                            }
                        
                    }else{
                        return null;
                        }
                   }
                    //
                })//return
                return str1;
            }//fixedWidth
        
       })
      $.fn.fixedWidth.defaults ={length :10,char :"..."};
    })(jQuery);

    调用:

    $(function(){
        $("p").each(function(){
            str = $(this).fixedWidth({length:5,char:"..."});
            $(this).text(str);
        }); 
    })
    </script>

    好了。大家看看吧

  • 相关阅读:
    俺自己可以写点代码了
    学姐,孙哥
    Linux/Unix 常用参数使用说明
    DB2 rollforward 命令使用详解
    DB2 create tablespace
    db2 基础语法
    VMWARE虚拟机不显示主机共享的文件夹解决办法
    DB2创建数据库常用参数详解
    从Linux访问Windows共享目录
    Data Flow >> Source >> Error Output >> Error & Truncation: Ignore Failure, Redirect Now, Fail Component
  • 原文地址:https://www.cnblogs.com/jine/p/2626547.html
Copyright © 2011-2022 走看看