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下常用命令
    winows下使用ssh服务远程登录vbox中的虚拟机
    Shell脚本获取C语言可执行程序返回值
    memcpy与memmove的区别
    常用软件
    书目
    顺序表C语言版
    限定符【const】用法大全
    极大极小搜索和α-β剪枝
  • 原文地址:https://www.cnblogs.com/jine/p/2626547.html
Copyright © 2011-2022 走看看