Skip to content

Commit d745ca4

Browse files
author
DESKTOP-KKTSRI8\zyh
committed
Merge branch 'master' of https://github.com/jsfront/src
2 parents 8bb1fe5 + dae2473 commit d745ca4

File tree

1 file changed

+186
-0
lines changed

1 file changed

+186
-0
lines changed

js.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,117 @@ function isWechat() {
175175
return /micromessenger/i.test(ua) || /windows phone/i.test(ua);
176176
}
177177
```
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+
```
178289

179290
- JS接口安全域名不填写,分享onMenuShareAppMessage直接会取默认值。
180291
```javascript
@@ -379,6 +490,20 @@ function getJsDir (src) {
379490
return script ? script.src.substr(0, script.src.lastIndexOf('/')) : script;
380491
}
381492
```
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+
```
382507

383508
- 从全局捕获错误
384509
```js
@@ -608,6 +733,26 @@ function appendscript(src, text, reload, charset) {
608733
} catch(e) {}
609734
}
610735
```
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+
```
611756
- 返回按ID检索的元素对象
612757
```js
613758
function $(id) {
@@ -753,6 +898,23 @@ String.prototype.unique=function(){
753898
return y
754899
};
755900
```
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+
```
756918
- 按字典顺序,对每行进行数组排序
757919
```js
758920
function SetSort(){
@@ -836,3 +998,27 @@ function transform(tranvalue) {
836998
return str;
837999
}
8381000
```
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

Comments
 (0)