工作中常用的js、jquery自定義擴展函數代碼片段

来源:http://www.cnblogs.com/jiekzou/archive/2016/12/22/6211108.html
-Advertisement-
Play Games

僅記錄一些我工作中常用的自定義js函數。 1、獲取URL請求參數 調用方式:var id = GetQueryString("id"); 2、在文本框中游標位置插入文本值 調用方式:這裡使用了easyui中的combobox控制項和ueditor富文本控制項 easyui-combobox代碼: $(" ...


僅記錄一些我工作中常用的自定義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());
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首次來博客園發帖,從本地部署arcgis api開始吧; 首先還是下載arcgis的api包開始,在中國區官網下載arcgis包: 1.http://support.esrichina.com.cn/2011/0223/960.html 2.library是我們要部署的api包,sdk是一些很好的學 ...
  • 1. 什麼是JSON JSON Javascript Object Notation,前兩個單詞大家應該都認識,最後一個notation,是“記號、標記法”的意思,連在一起,便成了JSON。 它是一種輕量級的數據交換格式,是基於Javascript的一個子集,可以叫做Javascript對象表示法, ...
  • 下麵是幾種簡單實現分隔線的方法,個人比較喜歡第二種,我也給出了最後第五種比較2的寫法,請大家拍磚,或者提供其他好的方法。 單個標簽實現分隔線: 點此查看實例展示 優點:代碼簡潔 巧用背景色實現分隔線: 點此查看實例展示 優點:代碼簡潔,可自適應寬度 inline-block實現分隔線: 點此查看實例 ...
  • 上一篇記錄了BaiduTemplate模板引擎使用示例附源碼,在此基礎上對使用方法進行了封裝 自定義插件jajaxrefresh.js 代碼如下: 調用方法: 預覽效果: 源碼下載 ...
  • 0x01 iframe的跳出框架 0x02 iframe樣式設置 0x03 iframe重置高度 1、首先來一個,跳出iframe的好方法,直接可以在Login.aspx頁面使用。 2、再來段比較好看的iframe 3、子頁面的使用,子頁面,在調整大小後,可以調用父頁面的SetWinHeight就可 ...
  • <!doctype html><html><head> <meta charset="UTF-8"> <title>前端Demo常用庫文件鏈接</title> <!--bootstrap--> <link rel="stylesheet" href="http://cdn.bootcss.com/b ...
  • localStorage(本地存儲),可以長期存儲數據,沒有時間限制,一天,一年,兩年甚至更長,數據都可以使用。sessionStorage(會話存儲),只有在瀏覽器被關閉之前使用,創建另一個頁面時同意可以使用,關閉瀏覽器之後數據就會消失。 HTML5 的本地存儲 API 中的 localStora ...
  • 1、Math.random():返回 0 ~ 1 之間的隨機數。2、Math.ceil():返回值:返回大於或等於x,並且與之最接近的整數(如果x是正數,則把小數“入”;如果x是負數,則把小數“舍”)。3、Math.round():四捨五入取整。4、Math.floor():返回值:返回小於或等於x ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...