zoukankan      html  css  js  c++  java
  • 功能性代码

    	/* 
    		cleanWhitespace 返回第一层子节点数组
    		参数:	node 要处理的文本节点
    				deep 是否处理元素的所有子辈节点 默认为 false
    				del  删除空白节点  默认为 true
    	*/
    	function cleanWhitespace(node,deep,del){
    		var notWhitespace = /\S/;
    		var returnNodes = [];	// 返回第一层子节点数组
    		
    		if(typeof deep == 'undefined' || deep == false){
    			var deep = false;
    		}else{
    			var del = true;
    		}
    		
    		if(typeof del == 'undefined' || del){
    			var del = true;
    		}
    		
    		
    		var childNodes = node.childNodes;
    		for (var i=0; i < childNodes.length; i++) {
    			
    			var childNode = childNodes[i];
    			
    			if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
    				del && node.removeChild(childNodes[i]) && i--;
    				continue;
    			}
    			
    			if (childNode.nodeType == 1) {
    				returnNodes.push(childNode);
    				deep && cleanWhitespace(childNode, true, true);
    			};
    		}
    		
    		return returnNodes || 'undefined';
    	} 	
    	
    	
    

    判断数据类型的方法: 来源(http://www.css88.com/archives/1824

     1 function getType(o) {
    2 var _t;
    3 return (
    4 (_t =typeof(o)) =="object"?
    5 o==null&&"null"|| Object.prototype.toString.call(o).slice(8,-1):
    6 _t
    7 ).toLowerCase();
    8 }
    9
    10 alert(getType("abc")); //string
    11 alert(getType(true)); //boolean
    12 alert(getType(123)); //number
    13 alert(getType([])); //array
    14 alert(getType({})); //object
    15 alert(getType(function(){})); //function
    16 alert(getType(new Date)); //date
    17 alert(getType(new RegExp)); //regexp
    18 alert(getType(Math)); //math
    19 alert(getType(null)); //null


     1 /*
    2 QueryParam 方法 获取和设置地址栏的参数
    3 参数 如果没有参数则返回当前地址栏的所有参数名值对象
    4 参数类型一 : '如果没有参数则返回当前地址栏的所有参数名值对象'
    5 参数类型二 :str '只有一参数字符串,则返回该参数的值'
    6 参数类型三 :object
    7 {
    8 '如果没有参数则返回当前地址栏的所有参数名值对象',
    9 key : '要获取的参数名的值',
    10 |---value : '设置或修改key的值,则设置 key(必须有) 的值,并返回整个 location新的search 对象',
    11 query_str: '要获取和操作的url对象的search 注意是search值'
    12 }
    13 */
    14 function QueryParam(param){
    15 var opts = {};
    16 if(typeof param ==='string'){// 直接字符串读取
    17 opts.key = param;
    18 }elseif(typeof param ==='undefined'){
    19 var opts = {};
    20 }else{
    21 var opts = param || {};
    22 }
    23 var query_str = opts.query_str || window.location.search;
    24 if(query_str.length ==0){return};
    25
    26 if(opts.key !== undefined){
    27
    28 // 如果设置值,并返回新的 query_str
    29 if(opts.value !== undefined ){
    30 var REP=new RegExp("([\?\&]"+ opts.key +"=).+?($|\&)");
    31
    32 if(!REP.test(query_str)){ // 如果不存在就写入
    33 return query_str +'&'+ opts.key +'='+ escape(opts.value);
    34 };
    35
    36 return query_str.replace(REP,"$1"+ escape(opts.value) +"$2");
    37 }
    38
    39 //返回请求的参数值
    40 var REP=new RegExp("([\&\?\^]"+ opts.key +"=)(.+?)($|\&)");
    41 var value = query_str.match(REP);
    42 return value && unescape(value[2]);
    43 }
    44
    45 //返回当前 search 的所有参数名值对象
    46 var objParam = {};
    47 var param = query_str.replace(/^\?/,'').split('&');
    48 for(var i =0, j = param.length; i < j; i++){
    49 var x = param[i].split('=');
    50 objParam[unescape(x[0])] = unescape(x[1]);
    51 }
    52
    53 return objParam;
    54 }

    动态加载外面 js 文件

     1           function creatScript(src,callBack){
    2 var script = document.createElement("script");
    3 script.setAttribute("src",src);
    4 document.getElementsByTagName("head")[0].appendChild(script);
    5
    6 script.onload = script.onreadystatechange = function() {
    7 if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete" ) {
    8 callBack();
    9 script.onload = script.onreadystatechange = null;
    10 }
    11 };
    12 }




    数字格式转换成千分位
     1 /**
     2  * commafy
     3  * 数字格式转换成千分位
     4  *@param{Object}num
     5  */
     6 
     7 ;(function(win){
     8     win.commafy = {
     9         "do" : function(num){
    10             if ((num + "").replace(/\s/,'') == "") {return ""; }
    11             if (isNaN(num)) {return ""; }
    12 
    13             num = num + "";
    14             if (/^.*\..*$/.test(num)) {
    15                 var pointIndex = num.lastIndexOf(".");
    16                 var intPart = num.substring(0, pointIndex);
    17                 var pointPart = num.substring(pointIndex + 1, num.length);
    18                 intPart = intPart + "";
    19                 var re = /(-?\d+)(\d{3})/
    20                 while (re.test(intPart)) {
    21                     intPart = intPart.replace(re, "$1,$2")
    22                 }
    23                 num = intPart + "." + pointPart;
    24             }else{
    25                 num = num + "";
    26                 var re = /(-?\d+)(\d{3})/
    27                 while (re.test(num)) {
    28                     num = num.replace(re, "$1,$2")
    29                 }
    30             }
    31             return num;
    32         },
    33         "undo" : function(num) {
    34             if ((num + "").replace(/\s/,'') == "") {
    35                 return "";
    36             }
    37             num = num.replace(/,/gi, '');
    38             return num;
    39         }
    40     }
    41 
    42 }(window));

     方法二

     1 /**
     2     * 将数值四舍五入后格式化.
     3     * @param num 数值(Number或者String)
     4     * @param isThousand 是否需要千分位 (boolean);
     5     * @param cent 要保留的小数位(Number)
     6     * @return 格式的字符串,如'1,234,567.45'
     7     * @type String
     8 */
     9 function formatNumber(num,isThousand,cent) {
    10     console.info(num,"---")
    11     var num = num.toString().replace(/\$|\,/g,'');
    12     var isThousand = isThousand === false ? false : true;
    13     var cent = cent || 0;
    14     // 检查传入数值为数值类型
    15       if(isNaN(num))
    16         num = "0";
    17 
    18     // 获取符号(正/负数)
    19     sign = (num == (num = Math.abs(num)));
    20 
    21     num = Math.floor(num*Math.pow(10,cent)+0.50000000001);  // 把指定的小数位先转换成整数.多余的小数位四舍五入
    22     cents = num%Math.pow(10,cent);              // 求出小数位数值
    23     num = Math.floor(num/Math.pow(10,cent)).toString();   // 求出整数位数值
    24     cents = cents.toString();               // 把小数位转换成字符串,以便求小数位长度
    25 
    26     // 补足小数位到指定的位数
    27     while(cents.length<cent)
    28       cents = "0" + cents;
    29 
    30     if(isThousand) {
    31       // 对整数部分进行千分位格式化.
    32       for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    33         num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
    34     }
    35 
    36     if (cent > 0)
    37       return (((sign)?'':'-') + num + '.' + cents);
    38     else
    39       return (((sign)?'':'-') + num);
    40 }

     判断ie的版本号

     1 var _ie = (function() {
     2     var v = 3,
     3         div = document.createelement('div'),
     4         all = div.getelementsbytagname('i');
     5     while (
     6         div.innerhtml = '<!--[if gt ie ' + (++v) + ']><i></i><![endif]-->',
     7         all[0]
     8     );
     9     return v > 4 ? v : false;
    10 }());

     限制频繁调用一个函数

     1 function debounce(fun, wait, immediate){
     2 
     3     var timeoutId = null;
     4 
     5     immediate = (immediate === undefined) ? true : immediate;
     6     wait = wait || 200;
     7 
     8     return function(){
     9         if(!timeoutId){
    10             var context = this, args = arguments;
    11             immediate && fun.call(context, args);
    12             timeoutId = setTimeout(function(){
    13                 !immediate && fun.call(context, args);
    14                 clearTimeout(timeoutId);
    15                 timeoutId = null;
    16             }, wait);
    17         }
    18     }
    19 }
  • 相关阅读:
    洛谷#P5652#基础博弈练习题
    hgoi#20191112
    hgoi#20191111
    hgoi#20191109
    洛谷#P3674#小清新人渣的本愿
    hgoi#20191108
    hgoi#20191107
    树上差分
    树链剖分(树剖)
    LCA(最近公共祖先)问题
  • 原文地址:https://www.cnblogs.com/zsk526/p/2149709.html
Copyright © 2011-2022 走看看