JS

工作记录–2016.3.30自执行函数

吴阳 No Comments

1

工作记录–2015.12.3输入框各种限制

吴阳 No Comments

原文地址:http://blog.163.com/wm_at163/blog/static/1321734902010517112152930/

关键字: 限制

正则表达式限制输入框只能输入数字      代码如下:

<input type=”text” onkeyup=”this.value=this.value.replace(/[^\d]/g,”) ” onafterpaste=”this.value=this.value.replace(/[^\d]/g,”) ” name=”f_order” value=”1″/>

其中,onafterpaste防止用户从其它地方copy内容粘贴到输入框

输入框只能输入字母和下横线的正则表达式
<input onkeyup=”this.value=this.value.replace(/[^_a-zA-Z]/g,”)” onpaste=”this.value=this.value.replace(/[^_a-zA-Z]/g,”)”>

输入框只能输入字母数字和下横线的正则表达式
<input onkeyup=”this.value=this.value.replace(/[^\w]/g,”)” onpaste=”this.value=this.value.replace(/[^\w]/g,”)”>

<input onkeyup=”this.value=this.value.replace(/[\W]/g,”)” onpaste=”this.value=this.value.replace(/[\W]/g,”)”>

工作记录–判断IE浏览器(最新)2015.11.10

吴阳 No Comments

var browser = navigator.appName;
var version = navigator.userAgent.split(“;”);//以分号划分字符串,让字符串形成数组
var trimVersion = version[1].replace(/[ ]/g,””);//数组索引为1的字符串里面把空格替换成空,就是去掉空格
// if(browser==”Microsoft Internet Explorer” && trimVersion==”MSIE7.0″){} //IE7
if(browser==”Microsoft Internet Explorer” && trimVersion==”MSIE8.0″){//IE8

}
else if(browser==”Microsoft Internet Explorer” && trimVersion==”MSIE9.0″){//IE9

}
else if(browser==”Microsoft Internet Explorer” && trimVersion==”MSIE10.0″){//IE10

}
else if(“ActiveXObject” in window){//IE11

}
else{//chrome firefox safari opera

}

拿来主义–e对象2015.11.6

吴阳 No Comments

QQ截图20151106154525

<body>
 <ul>
 <li class="">1111111111111111111111111111111111111111</li>
 <li class="">1111111111111111111111111111111111111111</li>
 <li class="">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 <li class="foo">1111111111111111111111111111111111111111</li>
 </ul>
</body>
</html>
<script type="text/javascript">
 $('ul').on('click','.foo',function (e) {
 console.log(e);
 if(e.currentTarget.className==='foo'){
 alert(123);
}
 });
</script>

通过获取event对象,进行判断,获取,当前被操作的对象的属性。

比如现在是点击,就是当前被点击的对象的属性。

这次不是从网上学到了,是从同事那学习到的。

感觉晓得这个了,以后会便利很多了。

拿来主义–匿名函数2015.10.29

吴阳 No Comments

参考文章:http://www.cnblogs.com/rainman/archive/2009/05/04/1448899.html

直接看结果

var double = function(x) { return 2* x; }

注意“=”右边的函数就是一个匿名函数,创造完毕函数后,又将该函数赋给了变量double。

先运行一下

console.log(double(3)); //6

得到“6”

然后直接改写成:

console.log((function(x) { return 2* x; })(3));//6

用文字来表达应该是:

(function(参数){参数参与的表达式})(重新给定的值)

这就构成了一个匿名函数的运用。

可以想成,省略了为函数赋值再调用函数的这个过程,直接将函数拿来用。

工作记录–jQuery对象与DOM对象互转(对应问题“xxx is not a function”)2015.10.22

吴阳 No Comments

实例:DOM转换为jQuery,对应问题“xxx is not a function”,笔者遇到的多为此类。- -。

在做到城市联动的功能中时,常常需要遍历。

在做下一级联动的时候就还需要遍历之前各个容器,然后把对应的城市插入。

部分代码如下:

$('.dealParts .u_fl2 li').append('<ul class=\"u_fl3\"></ul>');//每个省市下面创建城市容器
 var citiesBox = $('.dealParts .u_fl2 li .u_fl3');
 //console.log(citiesBox);
 //遍历城市容器
 for (c = 0; c < citiesBox.length; c++) {
 //console.log($($('.dealParts .u_fl2 li .u_fl3')[c]));
 //将DOM对象转换为jQuery对象,用$()方法即可
 var citiesUl = $($('.dealParts .u_fl2 li .u_fl3')[c]);
 //遍历城市
 for (k = 0; k < parts[c].cities.length;k++){
 citiesUl.append('<li><a>' + parts[c].cities[k] + '</a></li>');
 } 
 }

$(‘.dealParts .u_fl2 li .u_fl3’)为获取到的城市容器,这将是一个数组。在想到要对应每个容器里面插入城市的时候,会联想到$(‘.dealParts .u_fl2 li .u_fl3’)[i],这样的方式进行遍历。

但这样会导致:

“$('.dealParts .u_fl2 li .u_fl3')[c]” is not a function.

因为这是一个DOM对象,无法使用jQuery的方法。所以需要转换成jQuery对象。

即有:

$($('.dealParts .u_fl2 li .u_fl3')[c])

此时就可以使用jQuery的方法了。

拓展:jQuery与DOM的互相转换。

好懒得码字,见书《锋利的jQuery(第二版)》13页,网上应该有PDF。