• 个人代码库


    有的代码用的次数多,但也是搜过来粘贴修改就用,没有确定的风格;有的代码可能我觉得有价值。就放到这慢慢长成库吧。

    全选反选

    <table>
        <thead>
            <tr><td width="50"><input class="check-all" type="checkbox" value=""></td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><input class="ids" type="checkbox" name="ids[]" value="{$v.id}"></td>
            </tr>
            <tr>
                <td><input class="ids" type="checkbox" name="ids[]" value="{$v.id}"></td>
            </tr>
        </tbody>
    </table>
    
    
    <script type="text/javascript">
        $(".check-all").click(function(){ //全选反选
          $(".ids").prop("checked", this.checked);
        });
    
        $(".ids").click(function(){ //每次checked及时更新全选状态
          var option = $(".ids");
          option.each(function(i){
            if(!this.checked){
              $(".check-all").prop("checked", false);
              return false;
            }else{
              $(".check-all").prop("checked", true);
            }
          });
        });
      </script>
    

    jQuery中each类似于javascript的for循环
    但不同于for循环的是在each里面不能使用break结束循环,也不能使用continue来结束本次循环,想要实现类似的功能就只能用return,

    break 用return false

    continue 用return ture

    by jQuery中each的用法之退出循环和结束本次循环

    之后form直接提交则取 $_POST['ids'] 数组值,要页面中需要后续处理传送则:

    ids=[];
    $(".ids:checked").each(function(){
        ids.push($(this).val())
    })
    ids=ids.join(',')
    

    js,url添加参数

    //向url中加入参数,暂时正则表达式带参数替换尚有问题  
    
    function addUrlPara(name, value) {  
        var currentUrl = window.location.href.split('#')[0];  
        if (/?/g.test(currentUrl)) {  
            if (/name=[-w]{4,25}/g.test(currentUrl)) {  
                currentUrl = currentUrl.replace(/name=[-w]{4,25}/g, name + "=" + value);  
            } else {  
                currentUrl += "&" + name + "=" + value;  
            }  
        } else {  
            currentUrl += "?" + name + "=" + value;  
        }  
        if (window.location.href.split('#')[1]) {  
            window.location.href = currentUrl + '#' + window.location.href.split('#')[1];  
        } else {  
            window.location.href = currentUrl;  
        }  
    }  
    
    

    by js向url中添加参数

    修改之后:

    function addUrlPara(name, value,url=window.location.href) {  
        var currentUrl = url.split('#')[0];  
        if (/?/g.test(currentUrl)) {  
        	var re = new RegExp(name+"=[^&]*");    
        	//console.log(re) 
        	//console.log(re.exec(currentUrl))
            if (re.test(currentUrl)) {  
                currentUrl = currentUrl.replace(re, name + "=" + value);  
            } else {  
                currentUrl += "&" + name + "=" + value;  
            }  
        } else {  
            currentUrl += "?" + name + "=" + value;  
        }  
        if (url.split('#')[1]) {  
            return currentUrl + '#' + url.split('#')[1];  
        } else {  
            return currentUrl;
        }  
    }  
    console.log(addUrlPara('names','onion',"http://www.xxx.com/index.php?homepage=xxx"))
    //不过没去数组,也够用了。
    

    js获取GET参数

    function GetQueryString(name){
         var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
         var r = window.location.search.substr(1).match(reg);
         if(r!=null)return  unescape(r[2]); return null;
    }
    name('a')
    

    很好用呢

    by 用JS获取地址栏参数的方法(超级简单)

    php 获取数组某一列

    看到 PHP提取多维数组指定一列的方法大全 里说array_column版本>=5.5,则用稳妥的array_walk方法。文章中这么写:

    //array_walk()函数使用用户自定义函数对数组中的每个元素做回调处理,实现当前功能的方法:
    
    $username = array();
    array_walk($user, function($value, $key) use (&$username){
        $username[] = $value['username'];
    });
    
    

    PHP手册 aray_walk()中发现可以直接引用传值:

    $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
    
    function test_alter(&$item1, $key, $prefix)
    {
        $item1 = "$prefix: $item1";
    }
    array_walk($fruits, 'test_alter', 'fruit');
    

    则,获取数组某一列可以直接引用修改:

    array_walk($joined,function(&$val,$key){
    	$val=$val['id'];
    });
    

    则获取了$joined的id列值,不过此办法修改了原数组,需要新数组中生成的还需用上面文章里的。但,那种功能用foreach也一样搞定并没有发挥array_walk的用处。

    jQuery on 第二个参数动态绑定后代

    页面ajax动态添加了input元素,用on绑定:

    $('#softwarelist_tb input[type=checkbox]').on("click",select_tag); //无效
    $('#softwarelist_tb').on("click","input[type=checkbox]",select_tag); //ok
    

    参考: 事件 > on(eve,[sel],[data],fn)

    on(events,[selector],[data],fn)

    events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。
    selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的< null或省略,当它到达选定的元素,事件总是触发。
    data:当一个事件被触发时要传递event.data给事件处理函数。
    fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。
    

    python 列表删除某值所有

    codes=['10', '01', '00', '00'] 
    

    codes列表如果要删除'00',用此方法是不行的:会留下一个'00',因为在原列表操作破坏了索引

    for v in codes:
        if int(v)<=0:
    		codes.remove(v)
    

    需要用切片:

    for v in codes[:]:
    	if int(v)<=0:
    		codes.remove(v)
    

    JS获取当前时间 YY-mm-dd HH:ii:ss

    function nowTime(){
        var time = new Date();
       var m = time.getMonth() + 1;
       var t = time.getFullYear() + "-" + m + "-"
         + time.getDate() + " " + time.getHours() + ":"
         + time.getMinutes() + ":" + time.getSeconds();
       return t;
    }
    

    by js实时获取并显示当前时间的方法

    <div id="show"></div>
    <script type="text/javascript">
     window.onload = function() {
      var show = document.getElementById("show");
      setInterval(function() {
       var time = new Date();
       // 程序计时的月从0开始取值后+1
       var m = time.getMonth() + 1;
       var t = time.getFullYear() + "-" + m + "-"
         + time.getDate() + " " + time.getHours() + ":"
         + time.getMinutes() + ":" + time.getSeconds();
       show.innerHTML = t;
      }, 1000);
     };
    </script>
    

    获取时间差 以及 毫秒转为X天X小时X秒

    从某设备开始日期计算启动时间

    //计算启动时间
    $('.start_time').each(function(i){
        //计算时间差
        start_time=$(this).html()
        var from_date = new Date(start_time);
        var end_date = new Date();
        var time_different = (end_date - from_date) 
        
        //置下一列为运行时间
        $(this).next().html(MillisecondToDate(time_different))
    
    });
    
    

    by javascript日期相减,求时间差

    这里的start_time为时间2018-03-02 07:35,如果start_time为时间戳,则*1000再new Date()

    毫秒转为X天X小时X秒

    function MillisecondToDate(msd) {  
        var time = parseFloat(msd) /1000;  
        if (null!= time &&""!= time && time>0) {  
          if (time >60&& time <60*60) { 
        
              time_run = parseInt(time /60.0) +"分钟"+ parseInt((parseFloat(time /60.0) -  
              parseInt(time /60.0)) *60) +"秒";  
          }else if (time >=60*60) {  
              time_run='';
              if(time > 60*60*24){
                day = parseInt(time /(3600.0*24));
                time_run=day + '天'
                time=parseInt(time- day *3600.0*24)
              }
              time_run += parseInt(time /3600.0) +"小时"+ parseInt((parseFloat(time /3600.0) -  parseInt(time /3600.0)) *60) +"分钟"+  
              parseInt((parseFloat((parseFloat(time /3600.0) - parseInt(time /3600.0)) *60) -  
              parseInt((parseFloat(time /3600.0) - parseInt(time /3600.0)) *60)) *60) +"秒";  
          }
        }else{  
          time_run = "0天 0 时 0 分0 秒";  
        }  
        return time_run;  
    } 
    

    by js把毫秒转换为 xx小时xx分钟xx秒的通用方法,原代码中没有计算天,修改之后加上天数

    php 如何获取数组第一个值

    快速获取

    $arr:
    Array
    (
        [1] => Array
            (
                [create_time] => 1521270733
                [update_time] => 1521271129
            )
    
    )
    
    reset($arr):
    Array
    (
        [id] => 1
        [create_time] => 1521270733
        [update_time] => 1521271129
    )
    
    
    mixed reset ( array &array )
    reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值,如果数组为空则返回 FALSE。
    

    by php 如何获取数组第一个值

    动态行走图

    无意点到coding集成页,看到动态齿轮以为是GIF随手拖动了一下没动,看了下代码,发现是通过animation做的。

    测试一下:

    <!DOCTYPE>
    <html>
    	<head>
    		<title>行走图</title>
    		<style>
    			.w{
    				background:url('http://images.cnblogs.com/cnblogs_com/warcraft/1161800/o_walking.jpg');
    				height: 225px;
        			 134px;
        			animation: frame 500ms  step-start infinite;
    			}
    			@keyframes frame{ 0%{background-position:0 0;} 25%{background-position: 25% 0;} 50%{ background-position:50% 0} 75%{ background-position:75% 0} }
    		 	.gear{
    				background:url('http://images.cnblogs.com/cnblogs_com/warcraft/1161800/o_gear.png');
    				height: 125px;
        			 128px;
        			animation: gear 380ms step-start  infinite;
    			}
    			@keyframes gear{ 0%{background-position:0 0;} 25%{background-position: 25% 0;} 50%{ background-position:50% 0} 75%{ background-position:75% 0} }
    		</style>
    	</head>
    	<body>
    		<div class="w">
    		</div>
    
    		<div class="gear">
    		</div>
    	</body>
    </html>
    

  • 相关阅读:
    TCP同步与异步
    C#委托与事件
    线程
    C# 多人聊天程序
    vs启动错误
    记住我的痛苦
    C#命名空间与类名的冲突
    C#调试类
    linux ifconfig命令参数及用法详解linux查看配置网卡命令
    B/S架构
  • 原文地址:https://www.cnblogs.com/warcraft/p/8618056.html
Copyright © 2020-2023  润新知