常用的js函数


  1 function $(){ return document.getElementById(arguments[0])};
2
3 /**
4 * 得到上一个元素
5 * @param {Object} elem
6 */
7 function prev(elem){
8     do{
9         elem = elem.previousSibling;
10     } while(elem && elem.nodeType != 1);
11     return elem;
12 }
13
14 /**
15 * 得到下一个元素
16 * @param {Object} elem
17 */
18 function next(elem){
19     do{
20         elem = elem.nextSibling;
21     } while(elem && elem.nodeType != 1);
22     return elem;
23 }
24
25 /**
26 * 得到第一个元素
27 * @param {Object} elem
28 */
29 function first(elem){
30     elem = elem.firstChild;
31     return elem && elem.nodeType != 1 ? next(elem) : elem;
32 }
33
34 /**
35 * 得到最后一个元素
36 * @param {Object} elem
37 */
38 function last(elem){
39     elem = elem.lastChild;
40     return elem && elem.nodeType != 1 ? prev(elem) : elem;
41 }
42
43 /**
44 * 得到父元素
45 * @param {Object} elem
46 * @param {Number} num 需要寻找的父级级别
47 */
48 function parent(elem, num){
49     num = num || 1;
50     for(var i=0; i<num; i++){
51         if(elem != null) elem = elem.parentNode; //原书中这块有错
52     }
53     return elem;
54 }
55
56 /**
57 * 得到相关name元素
58 * @param {String} name
59 * @param {Object} elem
60 */
61 function tag(name, elem){
62     return (elem || document).getElementsByTagName(name)
63 }
64
65 /**
66 * 根据tag寻找
67 * @param {String} name
68 * @param {String} type
69 */
70 function hasClass(name, type){
71     var r = [];
72     var re = new RegExp(‘(^|\\s)‘+name+‘(\\s|$)‘);
73     var e = document.getElementsByTagName(type || ‘*‘);
74     for(var i=0; i<e.length; i++){
75         if(re.test(e[i].className)){
76             r.push(e[i]);
77         }
78     }
79     return r;
80     //http://www.cnblogs.com/rubylouvre/archive/2009/09/01/1557765.html //司徒兄有不同的看法
81 }
82
83 /**
84 * 获取元素文本
85 * @param {Object} e
86 */
87 function text(e){
88     var t = ‘‘;
89     e = e.childNodes || e;
90     for(var i=0; i<e.length; i++){
91         //如果不是元素,则追加其文本值
92         t += e[i].nodeType != 1 ? e[i].nodeValue : text(e[i].childNodes);
93     }
94     return t;
95 }
96
97 /**
98 *
99 * @param {String} elem
100 * @param {String} name
101 * @param {String} value
102 */
103 function attr(elem, name, value){
104     if(!name || name.constructor != String){
105         return ‘‘;
106     }
107    
108     //检查name的属性是否在怪异命名情形中
109     name = {‘for‘: ‘htmlFor‘, ‘class‘: ‘className‘}[name] || name;
110    
111     if(typeof value != ‘undefined‘){
112         elem[name] = value;
113         
114         if(elem.setAttribute){
115             elem.setAttribute(name, value);
116         }
117     }
118    
119     return elem[name] || elem.getAttribute(name) || ‘‘;
120 }
121
122
123 /**
124 * 在另一个元素之前插件元素
125 * @param {Object} parent
126 * @param {Object} before
127 * @param {String} elem
128 */
129 function before(parent, before, elem){
130     if(elem == null){
131         elem = before;
132         before = parent;
133         parent = before.parentNode;
134     }
135    
136     //获取元素的新数组
137     var elems = checkElem(elem);
138    
139     //向后遍历
140     for(var i=elems.length; i>=0; i--){
141         parent.insertBefore(elems[i], before);
142     }
143 }
144
145 /**
146 * 创建元素
147 * @param {Object} elem
148 */
149 function create(elem){
150     //测试是否用命名空间来创建新的元素
151     return document.createElementNS ? document.createElementNS(‘http://www.w3.org/1999/xhtml‘, elem) : document.createElement(elem);
152 }
153
154 /**
155 * before 辅助函数
156 * @param {Object} elem
157 */
158 function checkElem(a){
159     var r = [];
160     if(a.constructor != Array){ a = [a]};
161     for(var i=0; i<a.length; i++){
162         //如果是字符串
163         if(a[i].constructor == String){
164             //用一个临时元素来存放HTML
165             var div = document.createElement(‘div‘);
166             div.innerHTML = a[i];
167             //提取DOM结构到临时的div中
168             for(var j=0; j<div.childNodes.length; j++){
169                 r[r.length] = div.childNodes[j];
170             }
171         } else if(a[i].length){ //如果它是数组
172             //假定DOM节点数组
173             for(var j=0; j<a[i].length; j++){
174                 r[r.length] = a[i][j];
175             }
176         } else { //否则假定是DOM节点
177             r[r.length] = a[i];
178         }
179     }
180    
181     return r;
182 }
183
184 //此方法我已修改与原文中有异
185 /**
186 * 添加元素 (如果只有一个参数(无elem),则直接添加到document.body上)
187 * @param {Object} elem
188 * @param {Object} parent
189 */
190 function append(parent, elem){
191     if(elem == null){
192         elem = parent;
193         parent = null;
194     }
195    
196     //获取元素数组
197     var elems = checkElem(elem);
198     for(var i=0; i< elems.length; i++){
199         (parent || document.body).appendChild(elems[i]);
200     }
201 }
202
203 /**
204 * 删除独立的DOM
205 * @param {Object} elem
206 */
207 function remove(elem){
208     if(elem){ elem.parentNode.removeChild(elem) };
209 }
210
211 /**
212 * 删除一个节点的所有子节点
213 * @param {Object} elem
214 */
215 function empty(elem){
216     while(elem.firstChild){
217         remove(elem.firstChild);
218     }
219 }
220
221 /**
222 * 阻止事件冒泡
223 * @param {Object} e
224 */
225 function stopBubble(e){
226     if(e && e.stopPropagation){
227         e.stopPropagation();
228     } else {
229         window.event.cancelBubble = true;
230     }
231 }
232
233 function stopDefault(e){
234     if(e && e.preventDefault){
235         e.preventDefault();
236     } else {
237         window.event.returnValue = false;
238     }
239     return false;
240 }
241
242
243 /**
244 * 得到外链样式
245 * @param {Object} elem
246 * @param {String} name
247 */
248 function getStyle(elem, name){
249     if(elem.style[name]){
250         return elem.style[name];
251     } else if(elem.currentStyle){ //如果ie
252         return elem.currentStyle[name];
253     } else if(document.defaultView && document.defaultView.getComputedStyle){ //如果是不是w3c方法
254         name = name.replace(/([A-Z])/g, ‘-$1‘);
255         name = name.toLowerCase();
256         
257         //获取样式
258         var s = document.defaultView.getComputedStyle(elem, ‘‘);
259         return s && s.getPropertyValue(name);
260     } else {
261         return null;
262     }
263 }
264
265 /**
266 * 获取元素的x位置
267 * @param {String} elem
268 */
269 function pageX(elem){
270     return elem.offsetParent ? elem.offsetLeft + pageX(elem.offsetParent) : elem.offsetLeft;
271 }
272
273 /**
274 * 获取元素的Y位置
275 * @param {String} elem
276 */
277 function pageY(elem){
278     return elem.offsetParent ? elem.offsetTop + pageY(elem.offsetParent) : elem.offsetTop;
279 }
280
281 /**
282 * 获取元素相对于父级的x位置
283 * @param {String} elem
284 */
285 function parentX(elem){
286     return elem.parentNode == elem.offsetParent ? elem.offsetLeft : pageX(elem) - pageX(elem.parentNode);
287 }
288
289 /**
290 * 获取元素相对于父级的Y位置
291 * @param {String} elem
292 */
293 function parentY(elem){
294     return elem.parentNode == elem.offsetParent ? elem.offsetTop : pageY(elem) - pageY(elem.parentNode);
295 }
296
297 /**
298 * 查找元素的左端位置
299 * @param {Object} elem
300 */
301 function posX(elem){
302     return parseInt(getStyle(elem, ‘left‘));
303 }
304
305 /**
306 * 查找元素的顶端位置
307 * @param {Object} elem
308 */
309 function posY(elem){
310     return parseInt(getStyle(elem, ‘top‘));
311 }
312
313 /**
314 * 设置元素水平位置
315 * @param {Object} elem
316 * @param {Object} pos
317 */
318 function setX(elem, pos){
319     elem.style.left = pos + ‘px‘;
320 }
321
322 /**
323 * 设置垂直水平位置
324 * @param {Object} elem
325 * @param {Object} pos
326 */
327 function setY(elem, pos){
328     elem.style.top = pos + ‘px‘;
329 }
330
331 /**
332 * 获取高度
333 * @param {Object} elem
334 */
335 function getHeight(elem){
336     return parseInt(getStyle(elem, ‘height‘));
337 }
338
339 /**
340 * 获取宽度
341 * @param {Object} elem
342 */
343 function getWidth(elem){
344     return parseInt(getStyle(elem, ‘width‘));
345 }
346
347 /**
348 * 得到完整的高度,就算对象已隐藏
349 * @param {Object} elem
350 */
351 function fullHeight(elem){
352     //如果元素显示
353     if(getStyle(elem, ‘display‘) != ‘none‘){
354         return elem.offsetHeight || getHeight(elem);
355     }
356    
357     //如果不显示,则复原css
358     var old = resetCss(ele, {
359         display: ‘‘,
360         visibility: ‘hidden‘,
361         position: ‘absolute‘
362     });
363    
364     var h = elem.clientHeight || getHeight(elem);
365     restoreCss(elem, old);
366    
367     return h;
368 }
369
370 /**
371 * 恢复原有设置
372 * @param {String} elem
373 * @param {Object} prop
374 */
375 function resetCss(elem, prop){
376     var old = {};
377    
378     for(var i in prop){
379         old[i] = prop[i];
380         elem.style[i] = prop[i];
381     }
382     return old;
383 }
384
385 /**
386 *
387 * @param {String} elem
388 * @param {Object} old
389 */
390 function restoreCss(elem, old){
391     for(var i in old){
392         elem.style[i] = old[i];
393     }
394 }

常用的js函数

时间: 2025-01-01 04:41:59

常用的js函数的相关文章

一些常用的JS函数

//获取元素属性 function getStyle(obj, attr) { return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, 0)[attr]; } //运动函数 function doMove(obj, attr, speed, target, endFn) { clearInterval(obj.timer); speed = parseInt(getStyle(obj, attr)) < t

工作中一些常用的js函数总结

1.随机数 function rnd(n,m){ return parseInt(Math.random()*(m-n)+n); } 2.获取非行间样式 function getStyle(obj,name){ return obj.currentStyle?obj.currentStyle[name]:getComputedStyle(obj,false)[name]; } 3.通过class获取元素 function getByClass(obj,sClass){ var aEle = ob

100多个基础常用JS函数和语法集合大全

网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5.得到表单中元素的名称和值:document.getElementById

基础常用JS函数和语法

100多个基础常用JS函数和语法集合大全 来源:http://www.cnblogs.com/hnyei/p/4605103.html 网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,scr

(转)在网页中JS函数自动执行常用三种方法

原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   functionn MyAutoRun() {   //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!");   } </SCR

在网页中JS函数自动执行常用三种方法

在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   functionn MyAutoRun() {   //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!");   }  </SCRIPT> 下面,我们就针对上面的函数,让其在网页载入的时候自动运行! ①第一种方法 将如上代码改为: <SCRIPT   LANGUAG

Bloom filter的实现以及常用的hash函数

bloom filter利用时间换空间的思想,利用多个哈希函数,将一个元素的存在状态映射到多个bit中,特别是在网络环境中,BF具有广泛的用途,关键问题就是要减少false positive rate(可以设置参数来调节),扩展有 counting BF.这里选用的hash函数是表现较好的 BKDRHash , SDBMHash, DJBHash . Bloom-filter代码: bloom_filter.h #ifndef __BLOOM_FILTER_H__ #define __BLOOM

c#中常用的js语句

1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID號").name(或value) 6.一个小写转大

js函数的使用

  js函数应用 [函数的声明及调用]: 1.函数声明: function 函数名(参数1,参数2,·····){ //函数体 return 结果: >>函数调用的格式: 函数名(参数1的值,参数2的值,·····) 事件调用 } 2.函数声明的几点强调: ①.函数名的声明,必须符合驼峰法则(首字母小写,之后的每个单词首字母大写): ②.参数列表,可以有参可以无参,分别为有参函数,无参函数: ③.声明函数时的参数列表叫形参列表(变量的名):调用函数是的参数列表叫实参列表(变量的值): 函数中实