本系列文章旨在记录一些实用的javascript技巧,既可以作为一个知识的积累,又可以作为闲暇时打发时间写写代码的记录。同时也方便日后翻阅~
1. 用户判断给定的对象是否是数组
1 2 3 4 5 6 |
function isArray(o){ return Object.prototype.toString.call(o)==='[object Array]'; } // demo: isArray("str"); //false isArray([1,2]); //true |
2. 判断检查数组中是否存在某个值
1 2 3 4 5 6 7 8 9 10 |
Array.prototype.inArray = function(e) { for(i=0;i < this.length;i++) { if(this[i] == e) return true; } return false; } // demo: [1,2].inArray(1); //true |
3. 用来显示或隐藏一个DOM元素
1 2 3 4 5 6 7 8 9 10 11 |
function toggle(obj){ var el = document.getElementById(obj); if ( el.style.display != 'none' ) { el.style.display = 'none'; } else { el.style.display = ''; } } // demo: oDiv.onclick = toggle("id"); |
4. 加载样式文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function LoadStyle(url) { try { document.createStyleSheet(url) } catch(e) { var cssLink = document.createElement('link'); cssLink.rel = 'stylesheet'; cssLink.type = 'text/css'; cssLink.href = url; var head = document.getElementsByTagName('head')[0]; head.appendChild(cssLink) } } // demo: LoadStyle("css/style.css"); |
5. 清除脚本内容
1 2 3 |
function stripscript(s) { return s.replace(/<script.*?>.*?<\/script>/ig, ''); } |
6. 解析获取URL参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function getUrlParm(url, parm) { var thisUrl=url; var parmValue=""; var re=new RegExp(parm+"=.*", "i"); var mResult=re.exec(thisUrl); if(mResult!=null){ mResult=mResult[0]; alert(mResult); if(mResult.indexOf("&")!=-1) mResult=mResult.split("&")[0]; alert(parm+" value is "+mResult.split("=")[1]); //return mResult.split("=")[1]; } } // demo: getUrlParm("http://www.xuanfeng.com/login?user=chris","user"); // user=chris // user value is chris |
7. 判断是否为有效的数字
1 2 3 4 5 6 |
var i = 123; var str = "string"; if( typeof i == "number" ){ } //true //某些方法(如:parseInt,parseFloat)会返回一个特殊的值NaN(Not a Number) //请注意第2点中的[注意],此方法不完全适合判断一个字符串是否是数字型!! i = parseInt(str); if( isNaN(i) ){ } //true |
8. 获取时间的某部份
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours(); //获取当前小时数(0-23) myDate.getMinutes(); //获取当前分钟数(0-59) myDate.getSeconds(); //获取当前秒数(0-59) myDate.getMilliseconds(); //获取当前毫秒数(0-999) myDate.toLocaleDateString(); //获取当前日期 myDate.toLocaleTimeString(); //获取当前时间 myDate.toLocaleString( ); //获取日期与时间 |
9. 事件源对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
event.srcElement.tagName event.srcElement.type // 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); // 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey // 事件返回值 event.returnValue // 鼠标位置 event.x event.y |
10. 元素显示的通用方法
1 2 3 4 5 6 7 8 9 10 11 |
function $(id) { return !id ? null : document.getElementById(id); } function display(id) { var obj = $(id); if(obj.style.visibility) { obj.style.visibility = obj.style.visibility == 'visible' ? 'hidden' : 'visible'; } else { obj.style.display = obj.style.display == '' ? 'none' : ''; } } |
查看更多本系列文章:JS手记
暂无评论