1. /**
  2. * 获取当前日期
  3. * @returns {string}
  4. */
  5. Common.currentDate = function () {
  6. // 获取当前日期
  7. var date = new Date();
  8. // 获取当前月份
  9. var nowMonth = date.getMonth() + 1;
  10. // 获取当前是几号
  11. var strDate = date.getDate();
  12. // 添加分隔符“-”
  13. var seperator = "-";
  14. // 对月份进行处理,1-9月在前面添加一个“0”
  15. if (nowMonth >= 1 && nowMonth <= 9) {
  16. nowMonth = "0" + nowMonth;
  17. }
  18. // 对日期进行处理,1-9号在前面添加一个“0”
  19. if (strDate >= 0 && strDate <= 9) {
  20. strDate = "0" + strDate;
  21. }
  22. // 最后拼接字符串,得到一个格式为(yyyy-MM-dd)的日期
  23. return date.getFullYear() + seperator + nowMonth + seperator + strDate;
  24. };
  1. /**
  2. * 获取url上的参数(支持中文)
  3. * @param key
  4. * @returns {any}
  5. */
  6. Common.getUrlParam = function (key) {
  7. // 获取参数
  8. var url = window.location.search;
  9. // 正则筛选地址栏
  10. var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
  11. // 匹配目标参数
  12. var result = url.substr(1).match(reg);
  13. //返回参数值
  14. return result ? decodeURIComponent(result[2]) : null;
  15. }
  1. number = (number + '').replace(/[^0-9+-Ee.]/g, '');
  2. var n = !isFinite(+number) ? 0 : +number,
  3. prec = !isFinite(+decimals) ? 2 : Math.abs(decimals),
  4. sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
  5. dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
  6. s = '',
  7. toFixedFix = function (n, prec) {
  8. var k = Math.pow(10, prec);
  9. return '' + Math.ceil(n * k) / k;
  10. };
  11. s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
  12. var re = /(-?\d+)(\d{3})/;
  13. while (re.test(s[0])) {
  14. s[0] = s[0].replace(re, "$1" + sep + "$2");
  15. }
  16. if ((s[1] || '').length < prec) {
  17. s[1] = s[1] || '';
  18. s[1] += new Array(prec - s[1].length + 1).join('0');
  19. }
  20. return s.join(dec);
  21. };
  22. /**
  23. * 千分位格式化数字转为普通数字
  24. * @param formatedNum
  25. * @returns {number}
  26. */
  27. Common.rNumberFormat = function (formatedNum) {
  28. return parseFloat(formatedNum.replace(/[^\d\.-]/g, ""));
  29. };
  1. /**
  2. * 构造树型结构数据
  3. * @param {*} data 数据源
  4. * @param {*} id id字段 默认 'id'
  5. * @param {*} parentId 父节点字段 默认 'parentId'
  6. * @param {*} children 孩子节点字段 默认 'children'
  7. * @param {*} rootId 根Id 默认 0
  8. */
  9. Common.treeBuilder = function(data, id, parentId, children, rootId) {
  10. id = id || 'id'
  11. parentId = parentId || 'parentId'
  12. children = children || 'children'
  13. rootId = rootId || 0
  14. //对源数据深度克隆
  15. const cloneData = JSON.parse(JSON.stringify(data))
  16. //循环所有项
  17. const treeData = cloneData.filter(father => {
  18. let branchArr = cloneData.filter(child => {
  19. //返回每一项的子级数组
  20. return father[id] === child[parentId]
  21. });
  22. branchArr.length > 0 ? father[children] = branchArr : '';
  23. //返回第一层
  24. return father[parentId] === rootId;
  25. });
  26. return treeData != '' ? treeData : data;
  27. };
  1. /**
  2. * 重新封装jQuery的 ajax方法
  3. **/
  4. var $ax = function (url, success, error) {
  5. this.url = url;
  6. this.type = "post";
  7. this.data = {};
  8. this.dataType = "json";
  9. this.async = false;
  10. this.success = success;
  11. this.error = error;
  12. };
  13. $ax.prototype = {
  14. start: function () {
  15. var me = this;
  16. var result = "";
  17. if (this.url.indexOf("?") === -1) {
  18. this.url = this.url + "?jstime=" + new Date().getTime();
  19. } else {
  20. this.url = this.url + "&jstime=" + new Date().getTime();
  21. }
  22. $.ajax({
  23. type: me.type,
  24. url: me.url,
  25. dataType: me.dataType,
  26. async: me.async,
  27. data: me.data,
  28. beforeSend: function (data) {
  29. },
  30. success: function (data) {
  31. result = data;
  32. if (me.success !== undefined) {
  33. me.success(data);
  34. }
  35. },
  36. error: function (data) {
  37. if (me.error !== undefined) {
  38. me.error(data);
  39. }
  40. }
  41. });
  42. return result;
  43. },
  44. set: function (key, value) {
  45. if (typeof key === "object") {
  46. for (var i in key) {
  47. if (typeof i === "function")
  48. continue;
  49. this.data[i] = key[i];
  50. }
  51. } else {
  52. this.data[key] = (typeof value === "undefined") ? $("#" + key).val() : value;
  53. }
  54. return this;
  55. },
  56. setData: function (data) {
  57. this.data = data;
  58. return this;
  59. },
  60. clear: function () {
  61. this.data = {};
  62. return this;
  63. }
  64. };

JS 常用方法汇总(不定期更新)的更多相关文章

  1. 107个JS常用方法(持续更新中)

    1.输出语句:document.write(""); 2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个 ...

  2. js常用方法汇总

    产生在m.n之间的随机整数 //Math.round()把数四舍五入为最接近的整数. function random(m, n) { return Math.round(Math.random() * ...

  3. ***js常用方法汇总(源自实际中的项目)

    Q: 400-819-0717转8888,取后四位分机号 A: 方法一: alert("abcdefg".slice(-4));方法二:var str= "abcdefg ...

  4. AngularJS进阶(十二)AngularJS常用知识汇总(不断更新中....)

    AngularJS常用知识汇总(不断更新中....) 注:请点击此处进行充电! app.controller('editCtrl',['$http','$location','$rootScope', ...

  5. JS循环汇总

    JS循环汇总 一.总结 一句话总结:js中的循环主要有while.for.for...in.for...of,循环是,要区别不同的循环对象,比如对象,数组,集合等 while for for...in ...

  6. 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库

    采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...

  7. 微信JS接口汇总及使用详解

    这篇文章主要介绍了微信JS接口汇总及使用详解,十分的全面.详尽,包含分享到朋友圈,分享给朋友,分享到QQ,拍照或从手机相册中选图,识别音频并返回识别结果,使用微信内置地图查看位置等接口,有需要的小伙伴 ...

  8. 前端Js框架汇总(工具多看)

    前端Js框架汇总(工具多看) 一.总结 一句话总结: 二.前端Js框架汇总 概述: 有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快.看着Java.Js.Swift在各领 ...

  9. 基于C/S架构的3D对战网络游戏C++框架 _【不定期更新通知】

    由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C ...

随机推荐

  1. Python语法的使用和简介

    前言 Python的语法和其它编程语言的语法有所不同,编写Paython程序之前需要对语法有所了解,才能编写规范的Python程序. 输入输出 print() # 打印显示input() # 输入内容 ...

  2. 05 Vue项目搭建

    Vue-CLI 项目搭建 1.环境搭建 安装node 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 安装cnpm npm install -g cnpm --regi ...

  3. 题解:2018级算法第六次上机 C6-不Nan的过河

    题目描述: 样例: 实现解释: 一道因为没排序做了一个小时没做出来的二分答案模板题(手动呲牙) 知识点: 二分答案,最大值最小化 坑点: 排序,judge(mid)函数内计数的实现 其实从最长一步的最 ...

  4. 智联家园-四大人工智能虚拟形象首秀MV

    2020 世界人工智能大会云端峰会在上海举行,由微软小冰作曲并携手其他 AI 演唱的 2020 世界人工智能大会云端峰会主题曲<智联家园> 今天正式发布,同时这也是小冰上海音乐学院毕业后的 ...

  5. java 面向对象(二十五):内部类:类的第五个成员

    内部类:类的第五个成员 1.定义: Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类.2.内部类的分类:成员内部类(静态.非静态 ) vs 局部内部类(方法内.代码块内.构 ...

  6. redis(十三):Redis 集合(Set) python

    # -*- coding: utf-8 -*- import redis r = redis.Redis(host="126.56.74.190",port=639,passwor ...

  7. Python面试【315+道题】

    第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? P ...

  8. electron代码审计

    解包 Electron跨平台程序破解https://www.52pojie.cn/thread-563895-1-1.html Electron封装的跨平台程序破解的一般思路: 安装npm(至于如何安 ...

  9. Linux 通过源代码安装和编译程序

    Linux源代码安装在平常工作学习中经常用到,总结下步骤↓↓↓ 第一步:#mount /dev/cdrom/mnt (挂载一个软盘) 第二步:手动安装httpd-2.4.25.tar.gz 依赖关系包 ...

  10. Ethical Hacking - GAINING ACCESS(17)

    CLIENT SIDE ATTACKS - Backdooring exe' s Download an executable file first. VEIL - FRAMEWORK A backd ...