JQuery学习(1):封装与扩展脚本
1。string.Format
我们都知道,在C#里面有string.Format这个格式化字符串方法,方便我们格式化字符串,例如:
string sql=@"select * from users where userId=‘{0}‘",sql=string.Format(sql,1);
那么输出的sql=select * from users where userId=‘1‘;
但是在页面脚本上,却没有这个方法供我们使用,每次输出值,都要用到“++”拼接值,例如:
var html =“ ”;
html +=“<div>”;
html += “<a>“+ 例子 +”</a>”;
html +=“</div>”;
所以在这,我封装了一个JQuery格式化字符串方法:
1 string = {}; 2 string.Format = function () { 3 var param = []; 4 for (var i = 0, length = arguments.length; i < length; i++) { 5 param.push(arguments[i]); 6 } 7 8 var format = param[0]; 9 param.shift(); 10 return format.replace(/\{(\d+)}/g, function (m, i) { 11 return param[i]; 12 }); 13 }
调用也跟C#的string.Format方法一样:
string.Format("<div>{0}</div>", 1)
2。根据参数匹配参数内容是否是URL
脚本方法:
1 function GetUrlByParam(name) { 2 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 3 var r = window.location.search.substr(1).match(reg); //匹配目标参数 4 if (r != null) return unescape(r[2]); return null; //返回参数值 5 }
调用:
1 页面A跳转到页面B,页面A附带参数:www.a.com?backUrl=www.baidu.com 2 var backUrl= GetUrlByParam("backUrl");
3。获取光标位置插入内容
光标,相信大家都知道是什么吧。这里介绍的就是用脚本捕抓光标位置,从而插入内容的扩展函数:
1 $.fn.extend({ 2 insertAtCaret: function (myValue) { 3 var $t = $(this)[0]; 4 if (document.selection) { 5 this.focus(); 6 sel = document.selection.createRange(); 7 sel.text = myValue; 8 this.focus(); 9 } 10 else 11 if ($t.selectionStart || $t.selectionStart == ‘0‘) { 12 var startPos = $t.selectionStart; 13 var endPos = $t.selectionEnd; 14 var scrollTop = $t.scrollTop; 15 $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length); 16 this.focus(); 17 $t.selectionStart = startPos + myValue.length; 18 $t.selectionEnd = startPos + myValue.length; 19 $t.scrollTop = scrollTop; 20 } 21 else { 22 this.value += myValue; 23 this.focus(); 24 } 25 } 26 })
调用:
1 select * from users where userId=‘‘;如果光标在双引号中间,调用方法 2 insertAtCaret(“1”);就会变成:select * from users where userId=‘1‘;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。