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>
好了。大家看看吧