有的代码用的次数多,但也是搜过来粘贴修改就用,没有确定的风格;有的代码可能我觉得有价值。就放到这慢慢长成库吧。
全选反选
<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
之后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')
很好用呢
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;
}
<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))
});
这里的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。
动态行走图
无意点到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>