个人代码库

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

全选反选

<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>

原文地址:https://www.cnblogs.com/warcraft/p/8618056.html