@@ -175,6 +175,117 @@ function isWechat() {
175
175
return / micromessenger/ i .test (ua) || / windows phone/ i .test (ua);
176
176
}
177
177
```
178
+ - 获取单个dom元素
179
+ ``` js
180
+ function $ (selector , el ) {
181
+ if (! el) {
182
+ el = document ;
183
+ }
184
+ return el .querySelector (selector);
185
+ }
186
+ ```
187
+ - 获取多个dom元素
188
+ ``` js
189
+ function $$ (selector , el ) {
190
+ if (! el) {
191
+ el = document ;
192
+ }
193
+ return el .querySelectorAll (selector);
194
+ // Note: the returned object is a NodeList.
195
+ // If you'd like to convert it to a Array for convenience, use this instead:
196
+ // return Array.prototype.slice.call(el.querySelectorAll(selector));
197
+ }
198
+ ```
199
+ - 将nodeList集合转换为数组
200
+ ``` js
201
+ function convertToArray (nodeList ) {
202
+ var array = null
203
+ try {
204
+ // IE8-NodeList是COM对象
205
+ array = Array .prototype .slice .call (nodeList, 0 )
206
+ } catch (err) {
207
+ array = []
208
+ for (var i = 0 , len = nodeList .length ; i < len; i++ ) {
209
+ array .push (nodeList[i])
210
+ }
211
+ }
212
+ return array
213
+ }
214
+ ```
215
+ - ajax函数
216
+ ``` js
217
+ function ajax (setting ) {
218
+ // 设置参数的初始值
219
+ var opts = {
220
+ method: (setting .method || " GET" ).toUpperCase (), // 请求方式
221
+ url: setting .url || " " , // 请求地址
222
+ async: setting .async || true , // 是否异步
223
+ dataType: setting .dataType || " json" , // 解析方式
224
+ data: setting .data || " " , // 参数
225
+ success: setting .success || function () { }, // 请求成功回调
226
+ error: setting .error || function () { } // 请求失败回调
227
+ };
228
+
229
+ // 参数格式化
230
+ function params_format (obj ) {
231
+ var str = " " ;
232
+ for (var i in obj) {
233
+ str += i + " =" + obj[i] + " &" ;
234
+ }
235
+ return str
236
+ .split (" " )
237
+ .slice (0 , - 1 )
238
+ .join (" " );
239
+ }
240
+
241
+ // 创建ajax对象
242
+ var xhr = new XMLHttpRequest ();
243
+
244
+ // 连接服务器open(方法GET/POST,请求地址, 异步传输)
245
+ if (opts .method == " GET" ) {
246
+ xhr .open (
247
+ opts .method ,
248
+ opts .url + " ?" + params_format (opts .data ),
249
+ opts .async
250
+ );
251
+ xhr .send ();
252
+ } else {
253
+ xhr .open (opts .method , opts .url , opts .async );
254
+ xhr .setRequestHeader (" Content-Type" , " application/x-www-form-urlencoded" );
255
+ xhr .send (opts .data );
256
+ }
257
+
258
+ /*
259
+ ** 每当readyState改变时,就会触发onreadystatechange事件
260
+ ** readyState属性存储有XMLHttpRequest的状态信息
261
+ ** 0 :请求未初始化
262
+ ** 1 :服务器连接已建立
263
+ ** 2 :请求已接受
264
+ ** 3 : 请求处理中
265
+ ** 4 :请求已完成,且相应就绪
266
+ */
267
+ xhr .onreadystatechange = function () {
268
+ if (xhr .readyState === 4 && (xhr .status === 200 || xhr .status === 304 )) {
269
+ switch (opts .dataType ) {
270
+ case " json" :
271
+ var json = JSON .parse (xhr .responseText );
272
+ opts .success (json);
273
+ break ;
274
+ case " xml" :
275
+ opts .success (xhr .responseXML );
276
+ break ;
277
+ default :
278
+ opts .success (xhr .responseText );
279
+ break ;
280
+ }
281
+ }
282
+ };
283
+
284
+ xhr .onerror = function (err ) {
285
+ opts .error (err);
286
+ };
287
+ }
288
+ ```
178
289
179
290
- JS接口安全域名不填写,分享onMenuShareAppMessage直接会取默认值。
180
291
``` javascript
@@ -379,6 +490,20 @@ function getJsDir (src) {
379
490
return script ? script .src .substr (0 , script .src .lastIndexOf (' /' )) : script;
380
491
}
381
492
```
493
+ - 页面加载自执行函数
494
+ ``` js
495
+ function addload (func ) {
496
+ var old = window .onload ;
497
+ if (typeof window .onload != " function" ) {
498
+ window .onload = func;
499
+ } else {
500
+ window .onload = function () {
501
+ old ();
502
+ func ();
503
+ }
504
+ }
505
+ }
506
+ ```
382
507
383
508
- 从全局捕获错误
384
509
``` js
@@ -608,6 +733,26 @@ function appendscript(src, text, reload, charset) {
608
733
} catch(e) {}
609
734
}
610
735
` ` `
736
+ - 动态加载js或css文件
737
+ ` ` ` js
738
+ function delay_js(url) {
739
+ var type = url.split(".")
740
+ , file = type[type.length - 1];
741
+ if (file == "css") {
742
+ var obj = document.createElement("link")
743
+ , lnk = "href"
744
+ , tp = "text/css";
745
+ obj.setAttribute("rel", "stylesheet");
746
+ } else
747
+ var obj = document.createElement("script")
748
+ , lnk = "src"
749
+ , tp = "text/javascript";
750
+ obj.setAttribute(lnk, url);
751
+ obj.setAttribute("type", tp);
752
+ file == "css" ? document.getElementsByTagName("head")[0].appendChild(obj) : document.body.appendChild(obj);
753
+ return obj;
754
+ }
755
+ ` ` `
611
756
- 返回按ID 检索的元素对象
612
757
` ` ` js
613
758
function $(id) {
@@ -753,6 +898,23 @@ String.prototype.unique=function(){
753
898
return y
754
899
};
755
900
` ` `
901
+ - 删除数组中某个元素
902
+ ` ` ` js
903
+ Array.prototype.remove = function (val) {
904
+ var index = this.indexOf(val);
905
+ if (index > -1) {
906
+ this.splice(index, 1);
907
+ }
908
+ };
909
+ ` ` `
910
+
911
+ - 判断数组里是否有某个元素
912
+ ` ` ` js
913
+ Array.prototype.isContains = function (e) {
914
+ for (i = 0; i < this.length && this[i] != e; i++);
915
+ return !(i == this.length);
916
+ }
917
+ ` ` `
756
918
- 按字典顺序,对每行进行数组排序
757
919
` ` ` js
758
920
function SetSort(){
@@ -836,3 +998,27 @@ function transform(tranvalue) {
836
998
return str;
837
999
}
838
1000
` ` `
1001
+ - 格式化数字
1002
+ ` ` ` js
1003
+ function fmoney(s, n) {
1004
+ //s:传入的float数字 ,n:希望返回小数点几位
1005
+ n = n > 0 && n <= 20 ? n : 2;
1006
+ s = parseFloat((s + "").replace(/[^\d\. -]/g, "")).toFixed(n) + "";
1007
+ var l = s
1008
+ .split(".")[0]
1009
+ .split("")
1010
+ .reverse(),
1011
+ r = s.split(".")[1];
1012
+ t = "";
1013
+ for (i = 0; i < l.length; i++) {
1014
+ t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? "," : "");
1015
+ }
1016
+ return;
1017
+ t
1018
+ .split("")
1019
+ .reverse()
1020
+ .join("") +
1021
+ "." +
1022
+ r;
1023
+ }
1024
+ ` ` `
0 commit comments