工作中常用的js、jquery自定义扩展函数代码片段

简介:

仅记录一些我工作中常用的自定义js函数。

1、获取URL请求参数

复制代码
//根据URL获取Id
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 "";
}
复制代码

调用方式:var id = GetQueryString("id");

2、在文本框中光标位置插入文本值

复制代码
/* 在textarea处插入文本--Start */
(function ($) {
    $.fn.extend({
        "insertContent": function (myValue, t) {
            var $t = $(this)[0];
            if (document.selection) { // ie  
                this.focus();
                var sel = document.selection.createRange();
                sel.text = myValue;
                this.focus();
                sel.moveStart('character', -l);
                var wee = sel.text.length;
                if (arguments.length == 2) {
                    var l = $t.value.length;
                    sel.moveEnd("character", wee + t);
                    t <= 0 ? sel.moveStart("character", wee - 2 * t - myValue.length) : sel.moveStart("character", wee - t - myValue.length);
                    sel.select();
                }
            } else if ($t.selectionStart
             || $t.selectionStart == '0') {
                var startPos = $t.selectionStart;
                var endPos = $t.selectionEnd;
                var scrollTop = $t.scrollTop;
                $t.value = $t.value.substring(0, startPos)
                 + myValue
                 + $t.value.substring(endPos, $t.value.length);
                this.focus();
                $t.selectionStart = startPos + myValue.length;
                $t.selectionEnd = startPos + myValue.length;
                $t.scrollTop = scrollTop;
                if (arguments.length == 2) {
                    $t.setSelectionRange(startPos - t,
                     $t.selectionEnd + t);
                    this.focus();
                }
            } else {
                this.value += myValue;
                this.focus();
            }
        }
    })
})(jQuery);
/* 在textarea处插入文本--Ending */
复制代码

调用方式:这里使用了easyui中的combobox控件和ueditor富文本控件

复制代码
            $("#sltLabel").combobox({
                onSelect: function (item) {
                    var item = $('#sltLabel').combobox('getValue');
                    if (item != undefined && item != null && item != "") {
                        if ($("#sltChannel").val() == 0) {
                            UE.getEditor('editor').focus();
                            UE.getEditor('editor').execCommand('inserthtml', '{' + item + '}');
                        } else {
                            $("#txtContent").insertContent('{' + item + '}');
                        }
                    }
                }
            });
复制代码

easyui-combobox代码:

  <select class="easyui-combobox" id="sltLabel" name="sltLabel" style="width: 150px" onselect="change()" data-options="panelWidth: 150,panelHeight: 'auto',valueField: 'Value',textField: 'Text'">
  <option value="">选择要插入的标签</option></select>

 $("#sltLabel").combobox("loadData", data);

3、将 Date 转化为指定格式的String

复制代码
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function (fmt) { //author: zouqj 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //
        "s+": this.getSeconds(), //
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
复制代码

调用方式:new Date(json.ModifiedOn).Format("yyyy-MM-dd hh:mm:ss")

4、获取当前时间,格式:yyyy-MM-dd hh:mm:ss

复制代码
//获取当前时间,格式:yyyy-MM-dd hh:mm:ss
function getNowFormatDate() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = ":";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
            + " " + date.getHours() + seperator2 + date.getMinutes()
            + seperator2 + date.getSeconds();
    return currentdate;
}
复制代码

5、  生成一个由随机数组成的伪Guid(32位Guid字符串)

复制代码
//方式一
function newPseudoGuid () {
            var guid = "";
            for (var i = 1; i <= 32; i++) {
                var n = Math.floor(Math.random() * 16.0).toString(16);
                guid += n;
                if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
                    guid += "-";
            }
            return guid;
        }
//方式二
function S4() {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
//生成guid
function guid() {
    return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
复制代码

 其它函数

复制代码
/**
 * 全局函数
 * @param {Object} id
 */
var byId = function(id) {
    return document.getElementById(id);
};

function addClass(obj, name) { //添加样式函数
    obj.className = obj.className + " " + name;
}

function siblings(obj) { //获取到除当前按钮以外其他按钮
    var sibArr = obj.parentNode.children;
    var sibNewArr = [];
    for(var i = 0; i < sibArr.length; i++) {
        if(sibArr[i] != obj) {
            sibNewArr.push(sibArr[i]);
        }
    }
    return sibNewArr;
}

function removeClass(obj, name) { //删除样式函数
    var classStr = obj.className;
    var classArr = classStr.split(" ");
    var classNewArr = [];
    for(var i = 0; i < classArr.length; i++) {
        if(classArr[i] != name) {
            classNewArr.push(classArr[i]);
        }
    }
    obj.className = classNewArr.join(" ");
}

function haveClass(obj, name) { //是否有样式
    return obj.className.indexOf(name) > 0 ? true : false;
}
复制代码

近7天,近12个月

复制代码
/**
 * 全局函数
 * @param {Object} $
 * @param {Object} owner
 */
(function($, owner) {
    /**
     * 获取当前日期的前七天
     */
    owner.getSevenDay = function() {
        //设置日期,当前日期的前六天
        var myDate = new Date(); //获取今天日期
        myDate.setDate(myDate.getDate() - 6);
        var dateArray = [];
        var dateTemp;
        var flag = 1;
        var td = {
            value: '今日',
            textStyle: {
                backgroundColor: {
                    image: '../img/login-logo.png'
                }
            }
        };
        for(var i = 0; i < 7; i++) {
            dateTemp = i == 6 ? td : myDate.getDate(); //(myDate.getMonth() + 1) + "-" + 
            dateArray.push(dateTemp);
            myDate.setDate(myDate.getDate() + flag);
        }
        return dateArray;
    }
    /**
     * 获取近12个月
     */
    owner.getTwelveMonth = function() {
        var d = new Date();
        var result = [];
        for(var i = 0; i < 12; i++) {
            d.setMonth(d.getMonth() + 1);
            var m = d.getMonth() + 1;
            m = m < 10 ? "0" + m : m;
            //在这里可以自定义输出的日期格式  
            result.push(m + '月');
        }
        return result;
    }
}(mui, window.common = {}));
复制代码

 本文转自邹琼俊博客园博客,原文链接:http://www.cnblogs.com/jiekzou/p/6211108.html,如需转载请自行联系原作者

相关文章
|
3天前
|
JavaScript 前端开发
在JavaScript中,函数原型(Function Prototype)是一个特殊的对象
【5月更文挑战第11天】JavaScript中的函数原型是一个特殊对象,它为所有函数实例提供共享的方法和属性。每个函数在创建时都有一个`prototype`属性,指向原型对象。利用原型,我们可以向所有实例添加方法和属性,实现继承。例如,我们定义一个`Person`函数,向其原型添加`greet`方法,然后创建实例`john`和`jane`,它们都能调用这个方法。尽管可以直接在原型上添加方法,但推荐在构造函数内部定义以封装数据和逻辑。
10 2
|
5天前
|
前端开发 JavaScript 数据处理
在JavaScript中,异步函数是指什么
【5月更文挑战第9天】JavaScript中的异步函数用于处理非立即完成的操作,如定时器、网络请求等。它们可通过回调函数、Promise或async/await来实现。示例展示了如何使用async/await模拟网络请求:定义异步函数fetchData返回Promise,在另一异步函数processData中使用await等待结果并处理。当fetchData的Promise解析时,data变量接收结果并继续执行后续代码。注意,调用异步函数不会阻塞执行,而是会在适当时间点继续。
10 0
|
5天前
|
自然语言处理 JavaScript 前端开发
在JavaScript中,this关键字的行为可能会因函数的调用方式而异
【5月更文挑战第9天】JavaScript中的`this`关键字行为取决于函数调用方式。在非严格模式下,直接调用函数时`this`指全局对象,严格模式下为`undefined`。作为对象方法调用时,`this`指向该对象。用`new`调用构造函数时,`this`指向新实例。通过`call`、`apply`、`bind`可手动设置`this`值。在回调和事件处理中,`this`可能不直观,箭头函数和绑定方法可帮助管理`this`的行为。
10 1
|
5天前
|
JavaScript 前端开发 网络架构
JavaScript中的箭头函数是一种新的函数表达形式
【5月更文挑战第9天】JavaScript的箭头函数以简洁语法简化函数定义,其特性包括:1) 不绑定自身this,继承上下文的this,适合回调和事件处理;2) 没有arguments对象,需用剩余参数语法访问参数;3) 不能用作构造函数,无new调用;4) 没有prototype属性,不支持基于原型的继承。箭头函数在特定场景下优化了this处理,但使用时要注意与普通函数的差异。
9 2
|
8天前
|
XML 前端开发 JavaScript
javascript扩展小知识(必须细节)
javascript扩展小知识(必须细节)
|
8天前
|
JavaScript 前端开发
js的一些内置函数
js的一些内置函数
7 1
|
8天前
|
JavaScript 前端开发 索引
js的includes函数
js的includes函数
12 1
|
8天前
|
JavaScript 安全 前端开发
js的map函数
js的map函数
7 0
|
8天前
|
JavaScript 前端开发
js的filter函数
js的filter函数
10 1
|
8天前
|
JavaScript 前端开发
js的函数
js的函数
8 0