- 浏览: 44813 次
最新评论
-
zz13203778855:
哈哈 不好意思 问了个很低级的问题、、、参数随便写就行的、、哈 ...
使用jQuery Ajax功能的时候需要注意的一个问题 -
zz13203778855:
XHR就可以吗?不用XMLHttpRequest 这样写么? ...
使用jQuery Ajax功能的时候需要注意的一个问题 -
zz13203778855:
XHR
使用jQuery Ajax功能的时候需要注意的一个问题 -
lxy2330:
很不错啊,
这些年,我收集的JavaScript代码(一) -
babydeed:
写的不错 赞一个
[JavaScript]项目优化总结
一、JavaScript跨平台事件 对于跨平台事件我们一般这么写(只例举添加事件): 那么下面这段代码的效果是什么样的呢? 由于IE的this问题,在IE中果断地弹出了 over undefined,所以跨平台的事件更好的写法是这样的: 二、合并两个Array并去掉重复项 三、typeof === "undefined" vs. != null so,typeof === "undefined" is better! 四、setTimeout(fn, 0)的意义 浏览器同时要做很多事,这些事情以队列的方式存在,执行JavaScript只是其中之一,setTimeout(fn, 0)表面上看是立即执行的意思,但实际上只是在浏览器事件队列中添加了一个新的事件,由于队列是先进先出,所以fn会等等到当前队列中的事件执行完后再执行。由于JavaScript的定时器回调函数是异步执行的,所以产生的效果就是等页面上同步事件(包括页面渲染与同步JS代码)执行完之后再执行。 一个简单的示例: one会报错,因为页面执行到这里时还没有img,但two却可以。 五、增强版取URL中的参数 六、检查一个object是否是jQuery object 七、检查一个数是否为整数或浮点数 八、用JavaScript添加style节点 九、如何跳出双重循环 十、把一个Array追加到另一个Array上 十一、用jQuery把页面上的一个tag换成另一个tag 如把页面上所有的code换为pre: jQuery代码: 十二、取数组中的最小值和最大值 十三、取两个数组交集 注释中已经说明了,传入的数组要已经排过序的。 十四、统计一个字符串中某段子串出现的次数 十五、方法返回多个值 十六、Array迭代器 注意,如果数组中有0、false、""、null、NaN迭代器将会停止。 十七、根据日计算年龄 十八、判断当前页面是否被放入了iframe中 这段代码可以用来防止网页被放入iframe中,不过如果别人定义了self和top变量覆盖了浏览器默认值可能会失效。 十九、把arguments转换为Array 二十、日期格式化function addEventHandler(oTarget, sEventType, fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false);
} else if(oTarget.attachEvent){
oTarget.attachEvent("on"+sEventType,fnHandler);
} else{
oTarget["on"+sEventType]=fnHandler;
}
}
<div id="test">Test</div>
...
var oDiv=document.getElementById("test");
addEventHandler(oDiv,"mouseover",function(){
alert("over "+this.id);
});
function addEventHandler(oTarget, sEventType, fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false);
} else if(oTarget.attachEvent){
oTarget.attachEvent("on"+sEventType,function(){
return fnHandler.call(oTarget,window.event);
});
} else{
oTarget["on"+sEventType]=fnHandler;
}
}
Array.prototype.unique = function() {
var a = this.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
if(a[i] === a[j])
a.splice(j, 1);
}
}
return a;
};
//Demo
var array1 = ["a","b"];
var array2 = ["b", "c"];
var array3 = array1.concat(array2).unique();
// ["a","b","c"]
if(typeof neverDeclared == "undefined") //no errors
if(neverDeclared == null) //throws ReferenceError: neverDeclared is not defined
<script type="text/javascript">
//one
document.getElementById("imgTest").style.borderBottom="5px solid #000";
//two
setTimeout(function(){
document.getElementById("imgTest").style.borderBottom="5px solid #000";
}, 0);
</script>
<img src="http://jscode.chinacxy.com/img_lib/m_400_600_01.jpg" id="imgTest" alt=""/>
function getQueryString() {
var result = {}, queryString = location.search.substring(1),
re = /([^&=]+)=([^&]*)/g, m;
while (m = re.exec(queryString)) {
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return result;
}
// demo
var myParam = getQueryString()["myParam"];
if(obj instanceof jQuery)
function isInt(n) {
return typeof n === 'number' && n % 1 == 0;
}
// or ,this support ie3
function isInt(n) {
return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) && !isNaN(n);
}
function isFloat (n) {
return n===+n && n!==(n|0);
}
var css = 'h1 { background: red; }',
head = document.getElementsByTagName('head')[0],
style = document.createElement('style');
style.type = 'text/css';
if(style.styleSheet){
style.styleSheet.cssText = css;
}else{
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
function foo ()
{
dance:
for(var k = 0; k < 4; k++){
for(var m = 0; m < 4; m++){
if(m == 2){
break dance;
}
}
}
}
var a=[1,2],b=[3,4,5];
a.push.apply(a,b);
/*a: [1, 2, 3, 4, 5]*/
<code> A </code>
<code> B </code>
<code> C </code>
//change to
<pre> A </pre>
<pre> A </pre>
<pre> A </pre>
$('code').contents().unwrap().wrap('<pre/>');
//or
$('code').replaceWith(function(){
return $("<pre />").append($(this).contents());
});
var arr = new Array();
arr[0] = 100;
arr[1] = 0;
arr[2] = 50;
var min = Math.min.apply(null, arr),
max = Math.max.apply(null, arr);
/* finds the intersection of
* two arrays in a simple fashion.
*
* PARAMS
* a - first array, must already be sorted
* b - second array, must already be sorted
*
* NOTES
*
* Should have O(n) operations, where n is
* n = MIN(a.length(), b.length())
*/
function arrayIntersection(a, b)
{
var ai=0, bi=0;
var result = new Array();
while( ai < a.length && bi < b.length )
{
if (a[ai] < b[bi] ){ ai++; }
else if (a[ai] > b[bi] ){ bi++; }
else /* they're equal */
{
result.push(a[ai]);
ai++;
bi++;
}
}
return result;
}
console.log(arrayIntersection([1,2,3],[2,3,4,5,6]));//[2,3]
var temp = "This is a string.";
var count = temp.match(/is/g).length;
//One
var mValues= function(){
var a ="a";
var b = "b";
return [a, b];
};
var values= mValues();
var valOne= values[0];
var valTwo = values[1];
//Two
var mValues= function(){
var a= "a";
var b = "b";
return {
'a': a,
'b': b
};
};
var values= mValues();
var valOne= values.a;
var valTwo = values.b;
function createIterator(x) {
var i = 0;
return function(){
return x[i++];
};
}
var iterator=createIterator(['a','b','c','d','e','f','g']);
var current;
while(current=iterator())
{
console.log(current);
}
function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age;
}
console.log(getAge("2005,8,1"));//6
if(self==top){
//not in iframe
}else{
//in iframe
}
var args = Array.prototype.slice.call(arguments, 0);
来源:javascript日期格式化函数,跟C#中的使用方法类似Date.prototype.toString=function(format,loc){
var time={};
time.Year=this.getFullYear();
time.TYear=(""+time.Year).substr(2);
time.Month=this.getMonth()+1;
time.TMonth=time.Month<10?"0"+time.Month:time.Month;
time.Day=this.getDate();
time.TDay=time.Day<10?"0"+time.Day:time.Day;
time.Hour=this.getHours();
time.THour=time.Hour<10?"0"+time.Hour:time.Hour;
time.hour=time.Hour<13?time.Hour:time.Hour-12;
time.Thour=time.hour<10?"0"+time.hour:time.hour;
time.Minute=this.getMinutes();
time.TMinute=time.Minute<10?"0"+time.Minute:time.Minute;
time.Second=this.getSeconds();
time.TSecond=time.Second<10?"0"+time.Second:time.Second;
time.Millisecond=this.getMilliseconds();
time.Week=this.getDay();
var MMMArrEn=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var MMMArr=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];
var WeekArrEn=["Sun","Mon","Tue","Web","Thu","Fri","Sat"];
var WeekArr=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
var oNumber=time.Millisecond/1000;
if(format!=undefined && format.replace(/\s/g,"").length>0){
if(loc!=undefined && loc =="en"){
MMMArr=MMMArrEn.slice(0);
WeekArr=WeekArrEn.slice(0);
}
format=format
.replace(/yyyy/ig,time.Year)
.replace(/yyy/ig,time.Year)
.replace(/yy/ig,time.TYear)
.replace(/y/ig,time.TYear)
.replace(/MMM/g,MMMArr[time.Month-1])
.replace(/MM/g,time.TMonth)
.replace(/M/g,time.Month)
.replace(/dd/ig,time.TDay)
.replace(/d/ig,time.Day)
.replace(/HH/g,time.THour)
.replace(/H/g,time.Hour)
.replace(/hh/g,time.Thour)
.replace(/h/g,time.hour)
.replace(/mm/g,time.TMinute)
.replace(/m/g,time.Minute)
.replace(/ss/ig,time.TSecond)
.replace(/s/ig,time.Second)
.replace(/fff/ig,time.Millisecond)
.replace(/ff/ig,oNumber.toFixed(2)*100)
.replace(/f/ig,oNumber.toFixed(1)*10)
.replace(/EEE/g,WeekArr[time.Week]);
}
else{
format=time.Year+"-"+time.Month+"-"+time.Day+" "+time.Hour+":"+time.Minute+":"+time.Second;
}
return format;
}
var d=new Date();
console.log(d.toString()); //2012-7-27 9:26:52
console.log(d.toString("")); //2012-7-27 9:26:52
console.log(d.toString("yyyy-MM-dd HH:mm:ss")); //2012-07-27 09:26:52
console.log(d.toString("yyyy年MM月dd日 HH:mm:ss")); //2012年07月27日 09:26:52
console.log(d.toString("yyyy-MM-dd HH:mm:ss fff")); //2012-07-27 09:26:52 237
console.log(d.toString("yyyy年 MMM dd EEE")); //2012年 七月 27 星期五
console.log(d.toString("yyyy MMM dd EEE","en")); //2012 Jul 27 Fri
发表评论
-
推荐40个精心挑选的功能强大的jQuery导航插件
2012-08-23 08:59 1301推荐40个精心挑选的功能强大的jQuery导航插件 ... -
精心挑选的12款优秀 jQuery 手风琴效果插件和教程
2012-08-22 12:09 1243当你想在有限的页面空间内展示多个内容片段的时候,手风琴 ... -
[JavaScript]项目优化总结
2012-08-15 08:44 1645前端时间对公司已有项目JavaScript代码进行优 ... -
这些年,我收集的JavaScript代码(一)
2012-07-27 09:56 3968一、取URL中的参数 function getPa ... -
使用jQuery Ajax功能的时候需要注意的一个问题
2012-07-17 08:57 1919最近发现jQuery越来越火,用它的人也越来越多。jQu ... -
推荐20款非常优秀的 jQuery 工具提示插件
2012-07-16 07:53 759工具提示(Tooltip)在网站中的一个小功能,但却 ... -
你可能不知道的10个JavaScript小技巧
2012-04-28 16:29 990尽管我使用Javascript来做开发有很多年了,但它常 ...
相关推荐
JavaScript经典代码收集,个人收集的经典常用的JavaScript代码
收集的比较全面的脚本语言JavaScript代码大全,值得收藏
网页常用Javascript经典代码收集
JavaScript经典代码大全收集.pdf
收集JavaScript代码的
个人收集JavaScript源代码集
JavaScript代码收集
收集来的JavaScript代码,具体内容见文档吧!
Javascript弹窗代码大收集,里面主要收集了一些js弹出窗口的代码,有兴趣的可以来下载看看参考参考
超实用的JavaScript代码段.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
第一篇 JavaScript入门篇 第1章 初步了解JavaScript 1.1 JavaScript是什么 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 交互式菜单 1.2.4 动态页面 ...第15章 JavaScript常用特效收集
收集了大量的简单、实用的javascript演示实例,是学习javascript的好资料。
Javascript弹窗代码大全收集.docx
Javascript弹窗代码大全(收集),包含多种特效代码,用于学习开发之用
90、原生JavaScript常用的正则表达式大收集 91、原生JavaScript实现窗体改变事件resize的操作(兼容所以的浏览器) 92、原生JavaScript用正则清除空格分左右 93、原生JavaScript判断变量是否空值 94、原生JavaScript...
个人收集的javascript小实例源码,对学习javascript或做网站的朋友应该有用!
NULL 博文链接:https://12345678.iteye.com/blog/684864
本文收集了大量的Javascript各种校验代码,共23页