一、JS计算百分比
function GetPercent(num, total) {
/// <summary>
/// 求百分比
/// </summary>
/// <param name="num">当前数</param>
/// <param name="total">总数</param>
num = parseFloat(num);
total = parseFloat(total);
if (isNaN(num) || isNaN(total)) {
return "-";
}
return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00)+"%";
}
使用方法如下:
GetPercent(1,100);
结果:
1%;
二、Js中获取时间 new date()的用法
获取时间:
var myDate = new Date();//获取系统当前时间
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
JS获取当前时间戳的方法
JavaScript 获取当前时间戳:
第一种方法:
var timestamp =Date.parse(new Date());
得到的结果:1280977330000 注意:这里得到的结果将后三位(毫秒)转换成了000显示,使用时可能会出现问题。例如动态添加页面元素id的时候,不建议使用。
第二种方法:
var timestamp =(new Date()).valueOf();
结果:1280977330748
第三种方法:
var timestamp=new Date().getTime();
结果:1280977330748
js中单独调用new Date(),例如document.write(new Date());
显示的结果是:Mar 31 10:10:43 UTC+0800 2012 这种格式的时间
但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数。
三、将"2018-08-24 12:12:12"重新调整日期字符串格式为8月24日 12:12
四、JS函数传递字符串参数(符号转义)
JS函数传递字符串参数,如果没有转义处理,在接收的时候无法正确的接收字符串。
(1)在双引号内
<a href="javascript:orderDetails(\''+compId+'\')">查看详情</a>
<a href="javascript:void(0)" onclick="orderDetails(\''+compId+'\')">查看详情</a>
(2)在单引号内
<a href='javascript:orderDetails(\""+orderId+"\",\""+compName+"\")'>查看详情</a>
<a href='javascript:void(0)' onclick='orderDetails(\""+compId+"\",\""+compName+"\")'>查看详情</a>
(3)拼接字符串时
let briefObj =
' <button type="button" class="comp-detail-btn btn m-btn m-btn--gradient-from-primary m-btn--gradient-to-info"\n' +
' onclick="compDetailInfoModal(\''+compId+'\',\''+devCode+'\')">查看详情</button>';
$("#idCompInfo").append(briefObj);
如果参数为int类型,则不需要加引号和转义
五、批量替换js对象中的属性名
通过正则的方法进行过滤修改。
//高效将isCheck转换成checked
// 先将json对象data转为json字符串,再替换你要替换的属性名,最后再转为json对象
data = JSON.parse(JSON.stringify(data).replace(/isCheck/g,"checked"));
解释:1)JSON.stringify()把json对象转成json字符串;
2)使用正则的replace()方法替换属性名;
3)JSON.parse()把json字符串又转成json对象。
var
a={
"id"
:1,
"name"
:
"设备1"
};
//添加属性
a.level=2;
console.log(a);
//结果:Object { id: 1, name: "设备1", level: 2 }
//修改属性
a.level=
"3"
;
//结果:Object { id: 1, name: "设备1", level: "3" }
//删除属性
delete
a.level;
//结果:Object { id: 1, name: "设备1" }
七、JS获取url传过来的信息
/**
* 工具获取url传过来的信息
* @param name
* @returns {string}
* @constructor
*/
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
八、如何隐藏浏览器地址栏url参数
需求1:
用<A>标签跳转时候,经常会带参数地址?a=1这样的,但是我不想把a=1出现在地址栏的url上,应该怎么写代码才能不显示参数?
解答:
这个是不可以的。但是可以采用以下方法:
1、采用post提交模式,一般get提交模式会显示表单中提交的数据,比如账号密码等信息,但是采用post方式提交,URL中就会把这些信息进行进行加密的,此时通过地址栏就无法看到该参数了。
2、后台采用pathinfo模式的URL。一般PHP或者JSP都是支持的,此模式下,URL的传参将会被隐藏,地址栏里是按mvc模式进行URL访问的。
需求2:
每次点击页面的按钮时,使用window.location.href=“”时跳转页面地址栏都有参数信息。那么怎么样才能隐藏地址栏参数呢?
解答:
首先必须自己动态创建一个表单,将表单method改为post,提交这个表单就ok了。
// ===============JavaScript=====================
function postToPage() {
var f=document.createElement('form');
f.style.display='none';
f.action='XXX.do';
f.method='post';
f.innerHTML='<input type="hidden" name="mail" value="'+$("#email").val()+'"/>';
document.body.appendChild(f);
f.submit();
}
// ===============JQuery=====================
function postToPage() {
var form = $("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
//请求地址
form.attr("action","XXX.do");
var input1 = $("<input>");
input1.attr("type","hidden");
input1.attr("name","path");
input1.attr("value",uploadPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();
}
【原文:https://blog.csdn.net/mibi8840/article/details/81488827 】
九、url 参数值里的汉字乱码
curMenuName = decodeURI(decodeURI(乱码的参数));
【参考:https://www.cnblogs.com/longling2344/p/5476785.html】