1 用正则表达式去除HTML标签 ,下面是一个简单的符合W3C标准的示例: <a href="javascript:alert(document.getElementById('test').innerHTML.replace(/<.+?>/gim,''))">无HTML,符合W3C标准</a>
2 setTimeout (“函数或要执行的功能”,时间);是控制执行某项操作的时间间隔的, 例如
setTimeout("window.location.href=''",4000); 意思是在四秒钟后执行自我刷新
3 使用for (var i in arr) {} 来实现php中类似foreach(){}的功能
4 使用indexOf()在字符串中查找字符串 例子 var aaa="abcde"; var bbb = "b"; alert(bbb.index0f(aaa)); 注意顺序不要错
5 运算符归纳
1) typeof : typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."
2)instanceof:判断实例是否属于某个类,在通常的情况下我们判断类型使用的是typeof但这里有一个问题就是数组和类等等都是object所以要想判断对象是否是数组就要使用这个了例子:obj instanceof Array;
6 函数归纳
1)join : var a, b; a = new Array(0,1,2,3,4); b = a.join( "-"); b=0-1-2-3-4
2)eval()函数的用法:http://www.cnblogs.com/reonlyrun/archive/2007/01/04/641376.html
3) focus()函数的用法 : 聚焦函数,比如我做一个网页,里面有个文本框,想一开始鼠标就停留在文本框内 ,就这么写
documentGetElementById('textid').focus();这样一刷新页面鼠标就会停留在这个文本框中,同样在检验单的时候,可以把鼠标定位回不符合条件的哪个文本中
7 ajax主要用于时时与数据库交互的情况 ,如注册,充值,登陆等等大多数是向数据库中存储数据的时候,在不需要实时交互的地方就不要使用ajax,因为与数据库的交互是需要带宽的,比如联动菜单是从数据库中读取数据,这样完全可以把需要的数据全部读取出来,在使用javascript进行操作。
8 把时间格式写成080618:
<script language="javascript">
var dayTime = new Date();
var month=dayTime.getMonth()+1;
var dates = dayTime.getDate();
var year = dayTime.getYear();
var year = String(year);
var get_year = year.substring(2,4);
var get_month = "0"+month;
var get_date = dates;
var get_day = get_year+get_month+get_date;
alert(get_year);
</script>
9 实现两个按钮提交到不同的页面
示例1
<form name=form1 action="" οnsubmit="return change()">
<input type=button name=bt1 οnclick="form1.action='del.asp';form1.submit();" value="删除">
<input type=button name=bt2 οnclick="form1.action='pz.asp';form1.submit()" value="批注">
....
</form>
示例2
<script>
function save(){
document.form1.action="right.asp";
document.form1.submit();
}
function send(){
document.form1.action="sendtaskook.asp";
document.form1.submit();
}
</script>
<form name="form1">
<input type="button" name="btn1" value="发送" οnclick="send();">
<input type="button" name="btn2" value="保存" οnclick="save();">
</form>
http://www.timewww.com/www/article/3b/7154.html
示例 3:
<form action="a.php" method="post">
<input type="submit" value="发送">
</form>
<from action="b.php" method="post">
<input type="submit" value="取消">
</form>
10 掌握ajax的补充
当request.status=0是代表的是在本地而不是在服务器上面
11 js事件列表
http://dev.csdn.net/article/45/45493.shtm
12 js的教程链接
面向对象的Jscript(http://bbs.blueidea.com/viewthread.php?tid=1822005&page =)
面向对象的JavaScript编程(http://blog.csdn.net/liuruhong/archive/2004/05/19/1926.aspx )
JSVM核心架构讲解以及部份代码分析(一)(二) http://www.blueidea.com/bbs/NewsDetail.asp?id=1589202
Web开发中的JavaScript设计艺术 http://chat.csdn.net/chathistory/ViewStatements.aspx?TopicId=95
在JavaScript面向对象编程中使用继承(1) http://www.cnblogs.com/birdshome/archive/2005/01/28/95933.html
Classical Inheritance in JavaScript http://www.crockford.com/javascript/inheritance.html (英文)
在JavaScript面向对象编程中使用继承(2) http://download.cnblogs.com/birdshome/archive/2005/01/30/99385.html
在JavaScript面向对象编程中使用继承(3) http://www.cnblogs.com/birdshome/archive/2005/02/01/100145.html
js常用正则匹配 http://xieyu.blog.51cto.com/213338/91501
15 个javascript web ui库 http://news.csdn.net/a/20100519/218442.html
javascript面向对象 http://developer.51cto.com/art/200901/104775.htm
javascript继承详解,非常好 http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html
javascript中对象的prototype属性
13 定义数组的方法
1 二维数组
var arr= new array();
arr['aa'] = new array('aaa','aab');
arr['bb'] = new array('bbc','bbd');
这样就可以定义了一个二维的数组
2 一维数组
var aa=[[10],[20]];
aa[0]=10,aa[1]=20
所以可以利用这种形式,将php中的数组转换成js数组并作为参数传递值
14 函数无传递参数
例如在函数中 var pointpag=function(event){},这里的event可以是任意字符 ,这是表示触发某个事件(onclick,onblur),执行函数pointpag此时的event代表的是所触发事件的元素对象,例如当鼠标点击用户的触发事件时,event代表的就是鼠标这个对象,鼠标的位置就是event.x和event.y,鼠标事件的type就是onclick或onblur,另外的例子参见js dom高级(133),只要调用这个函数的地方不传递参数就可以 pointpag(),而pointpag("aa")是不可以的,.注意前提是使用addvent()函数添加的事件侦听器才会有用
15 提交按钮设置成button
当在检查表单的提交时,必须要把按钮的类型设置成button,然后才能利用当所有的检查都符合条件时调用formName.submit()来提交表单,而不能把type=submit如果是这样的话即使检查错误并返回return false;但还是会产生提交而不会返回。
强制提交:当达到某个条件的时候,在其语句后面加上 formName.submit();
16 js对象
1 elememnts:document.form1.elements[b]代表表单中所有的元素,form1是form的name,b是所在元素的id的 document.form1.elements['input-checkcode']
17 javascript keycode大全
http://www.cnblogs.com/zhangronghua/archive/2008/06/04/1213281.html
18 javascript 各种对象的使用大全
http://www.w3school.com.cn/js/js_reference.asp
19 js下取小数点的方法
http://www.phpx.com/happy/archiver/tid-116526.html
20 实现设置首页,只适用于ie
<a href="javascript:void(0);"onclick ="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.sina.com.cn/');return(false);">设置为首页</a>
20 js中的全局变量在函数中的使用
只要在php中使用<script type="text/javascript">var para = "dd";</script>,那么在这个php文件中调用的js文件就都可以得到这个变量参数,在函数外部定义的变量都是全局的变量,在一个函数中改变了这个变量,则在其他函数中使用这个变量的值就相同的改变了,这样如果不能使用函数之间传递参数的方式,那么就可以使用定义全局变量的方式来达到同样的目的,例如
var data = "" function a(){data="dd"} function b(){alert(data)} b输出的结果是dd
20 js中的原型继承的理解
1 prototype
每个javascript对象都有一个原型(原型对象),这个原型是在构造函数创建的同时自动产生的,并且构造函数和这个原型是继承的关系,即构造函数继承原型的所有属性和方法,我们自定义一个构造函数如
function obj(){
this.name = 'a';
}
则这个函数在作为构造函数实例化对象 即 var eleme = new obj(); 时javascript就会自动的生成这个函数的原型对象(这个原型对象在起初的时候是空的对象),使用obj.prototype向上来读取这个原型,prototype 是在每个函数创建的时候就会拥有的一个成员,如果定义一个原型的属性obj.prototype.name1 = 'b';那么构造函数obj就会继承原型的所有属性和方法,则alert(obj.name1) 的值为b,那为什么要有原型这样的概念呢?我想是因为第一点,使用原型可以初始化一些javascript内置对象的属性和方法(你无法改造这些内置对象的构造函数),例如string这个对象可以使用string.prototype.max(){},来增加一个新的方法。第二,可以更加灵活的不用修改构造函数而在任何地方增加公共属性和方法。
函数只有在需要引用到原型时,才具有构造器的特性。
参考 http://topic.csdn.net/t/20021216/13/1265016.html
2 constructor
显示构造函数
在上一个例子中
alert(obj.prototype.constructor)输出的结果就是obj这个构造函数
而eleme.constructor.prototype就是值实例eleme的构造函数obj的原型 = = obj.prototype
21 js创建页面蒙板的一些知识技巧总结
http://kb.cnblogs.com/a/963190/
22 js var_dump()
if(typeof obj== "object") {
var txt = '';
for(key in obj)
{
txt +=key + '=' + obj[key] + ',';
}
return "Type: "+typeof(obj)+((obj.constructor) ? "/nConstructor: "+obj.constructor : "")+"/nValue: " + txt;
} else {
return "Type: "+typeof(obj)+"/nValue: "+obj;
}
}
22 selectedIndex
http://www.w3school.com.cn/htmldom/prop_select_selectedindex.asp
23 什么是CDATA和 PCDATA
CDATA表示里面是什么数据XML不会解析.比如可能是下面的一段
<![CDATA[
if(a> b){
System.out.println(a);
}
]]>
注意上面的一个">"符号.
PCDATA的数据是要给XML解析器去解析的,那上面的>去解析肯定会出错了,所以要用实体定义.上面的数据如果用PCDATA表示如下:
if(a&gt; b){
System.out.println(a);
}
CDATAT标明是纯文本的,没有这个的话 < > & 字符是不能直接存入XML的,需要转义,而用这个标记则不需要转义而将这些符号存入XML文档。
可以避免未预料的特殊符号导致XML解析出错。
24 使用函数式编程 http://www.ibm.com/developerworks/cn/web/wa-javascript.html
25 父页面的操作
使用window.opener表示父页面 window.opener.functionName(),可以执行父页面的js函数,多用于刷新,typeof window.opener.functionName == "undefined" 用于判断父页面中的函数是否存在
window.opener.document.getElementById('idname')获取父页面的对象, window.opener.document.getElementById("name").value = 'df' 设置值
可以查找window.opener的使用方法
26 arguments对象的使用:arguments记录的是用户的参数arguments[0],表示第一个参数
http://www.ijavascript.cn/shouce/javascript-arguments-381.html
27 typeof返回的是六种类型的判断,用于判断对象的类型,包括是否为空
http://hi.baidu.com/fyears/blog/item/7494734eaff7720bb2de0516.html/cmtid/da4d8c77101ea810b051b9bc
28 返回页面顶部 window.scroll(0,0);
29 Google Chrome 也牛B ,调试js很好用