JS笔记整理(三)


1.css里的word-break:break-all表示当一行比较长的文字到达div或者其他容器的右边时自动切换到下一行,也可以配合overflow:auto来使用
2.list-style
3.text-decoration
4.input中的maxlength=4,即input中最多输入4个字符
5.select中的option后面没有</option>,它与<input>类似
6.在外面用var和不用var都是全局变量,而在里面用var则为局部变量,不用var则为全局变量!!!如果alert时出现一个变量的值为undefined,则是这个变量没有赋值...
7.<frame />,它的后面也没有</frame>,这个也得注意了.
8.window.location.reload()方法是刷新这个页面.
9.filter:alpha(opacity=50,finishOpacity=100);设置透明效果
10.jquery中的error(callback)这个方法可以很好的去屏避一些js的错误,比如:$("img").error(function(){$(this).hide()});这样就可以把加载错误的图片隐藏掉.
11.var obj=document.getElementsByTagName("h1")其实是一个对象数组,访问时可以alert(obj[0].属性|方法);来访问就可以了.
12.由对象形成的数组如何从里面的对象中取值呢?有三种方法:

一.(1) 以下是通过jquery的属性和方法的对象必须为jquery对象
<script>
var arr=$("h1").get();
$.each(arr,function(key,value){
alert($(value).text());
});
</script>

(2) 如果写成如下就不行:
<script>
var arr=$("h1").get();
$.each(arr,function(key,value){
alert(value.text());
});
</script>
这样是不行的,因为value是一个对象数组中的一个对象,但是此处的写法是不对的

二.
(1)既然不是jquery对象,那就用value对象的原有属性和方法.
<script>
var arr=$("h1").get();
$.each(arr,function(key,value){
alert(value.innerText);
});
</script>

三.
(1)或者直接从dom对象中往出递归的取出:
<script>
$("h1").each(function(){
alert($(this).text());
});
</script>
总结:找到对象的方法有很多,可能通过dom也可以通过jquery,但是使用这个对象的属性和方法时,要注意了,问题就在这儿,dom对象有它自己的属性和方法,而jquery对象才会有jquery对象的属性和方法,这两种对象的属性和方法不可混用.否则不会生效.
13.如何形成jquery对象数组?如何形成dom元素数组?

一.形成dom对象数组:
(1) 如下所示等你用$("h1")或者document.getElementsByTagName("h1");得到的都是类似于对象数组的一种对象,其实就是对象,但是用$.isArray(obj)却显示是对象并不是数组
<script>
var obj=$("h1");
alert(obj[2].innerText);
</script>

(2) 下面是用jquery对象的方法取出类对象数组中的值
<script>
var obj=$("h1");
alert($(obj[2]).text());
</script>
总结以上得出:
(1) 普通数组,如:var arr=["aaa","bbb"];
(2) dom元素数组,如:$("img").get();
(3) jquery对象数组,如:$("img");

14.总结浏览器和屏幕的宽度和高度问题:
Document宽度:document.body.clientWidth; (不包括scroll的宽度)
Document高度:document.body.clientHeight; (不包括scroll的宽度)
图片宽度:document.body.offsetWeight; (与clientWidth相等)
图片高度:document.body.offsetHeight; (与clientheight相等)
网页正文全文宽:document.body.scrollWidth;
网页正文全文高:document.body.scrollHeight;
网页被卷去的高:document.body.scrollTop;
网页被卷去的左:document.body.scrollLeft;
离屏幕的上:window.screenTop;
离屏幕的左:window.screenLeft;
屏幕分辨率的高:window.screen.height; (包括任务栏)
屏幕分辨率的宽:window.screen.width; (包括任务栏)
屏幕可用工作区高度:window.screen.availHeight; (不包括任务栏)
屏幕可用工作区宽度:window.screen.availWidth; (不包括任务栏)

15.以下是107个小知识:
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: document.getElementById("output").value = document.getElementById("input").value.toUpperCase();
7.JS中的值类型:String,Number,Boolean,Null,Object,Function
8.JS中的字符型转换成数值型:parseInt(),parseFloat()
9.JS中的数字转换成字符型:(""+变量)
10.JS中的取字符串长度是:(length)
11.JS中的字符与字符相连接使用+号.
12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<=
13.JS中声明变量使用:var来进行声明
14.JS中的判断语句结构:if(condition){}else{}
15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop}
16.循环中止的命令是:break
17.JS中的函数定义:function functionName([parameter],...)
18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. //http://www.devdao.com
19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self
20.状态栏的设置:window.status="字符";
21.弹出提示信息:window.alert("字符");
22.弹出确认框:window.confirm();
23.弹出输入提示框:window.prompt();
24.指定当前显示链接的位置:window.location.href="URL"
25.取出窗体中的所有表单的数量:document.forms.length
26.关闭文档的输出流:document.close();
27.字符串追加连接符:+=
28.创建一个文档元素:document.createElement(),document.createTextNode()
29.得到元素的方法:document.getElementById()
30.设置表单中所有文本型的成员的值为空:
var form = window.document.forms[0]
for (var i = 0; i if (form.elements.type == "text"){
form.elements.value = "";
}
}
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE)
32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length
33.单选按钮组判断是否被选中也是用checked.
34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)
35.字符串的定义:var myString = new String("This is lightsword");
36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();
37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到.
38.取字符串中指定位置的一个字符:StringA.charAt(9);
39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);
40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))返回随机数
41.定义日期型变量:var today = new Date();
42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒 [注意:此日期时间从0开始计]
43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName
44.parent代表父亲对象,top代表最顶端对象
45.打开子窗口的父窗口为:opener
46.表示当前所属的位置:this
47.当在超链接中调用JS函数时用:(javascript :)来开头后面加函数名
48.在老的浏览器中不执行此js:
49.引用一个文件式的js:
50.指定在不支持脚本的浏览器显示的HTML:
51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:dfsadf
52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,
ReferenceError,RegExp,String,SyntaxError,TypeError,URIError
53.JS中的换行:\n
54.窗口全屏大小:
55.JS中的all代表其下层的全部元素
56.JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 1
57.innerHTML的值是表单元素的值:如
"how are you",则innerHTML的值就是:how are you
58.innerTEXT的值和上面的一样,只不过不会把这种标记显示出来.
59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.
60.isDisabled判断是否为禁止状态.disabled设置禁止状态
61.length取得长度,返回整型数值
62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc
63.window.focus()使当前的窗口在所有窗口之前.
64.blur()指失去焦点.与FOCUS()相反.
65.select()指元素为选中状态.
66.防止用户对文本框中输入文本:οnfοcus="this.blur()"
67.取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length
68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()
69.状态栏文字的设置:window.status="文字",默认的状态栏文字设置:window.defaultStatus = "文字.";
70.添加到收藏夹:external.AddFavorite("http://www.dannyg.com"t;,"jaskdlf");
71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;
72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.
73.JS中的self指的是当前的窗口
74.JS中状态栏显示内容:window.status="内容"
75.JS中的top指的是框架集中最顶层的框架
76.JS中关闭当前的窗口:window.close();
77.JS中提出是否确认的框:if(confirm("Are you sure?"))else{alert("Not Ok");}
78.JS中的窗口重定向:window.navigate("http://www.sina.com.cn"t;);
79.JS中的打印:window.print()
80.JS中的提示输入框:window.prompt("message","defaultReply");
81.JS中的窗口滚动条:window.scroll(x,y)
82.JS中的窗口滚动到位置:window.scrollby
83.JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout
84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]);
85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}} window.οnbefοreunlοad=verifyClose;
86.当窗体第一次调用时使用的文件句柄:onload()
87.当窗体关闭时调用的文件句柄:onunload()
88.window.location的属性: protocol(http:),hostname(example.com),port(80),host(example.com:80),pathname("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息)
89.window.location.reload()刷新当前页面.
90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL)
91.document.write()不换行的输出,document.writeln()换行输出
92.document.body.noWrap=true;防止链接文字折行.
93.变量名.charAt(第几位),取该变量的第几位的字符.
94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值.
95.字符串连接:string.concat(string2),或用+=进行连接
96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算)
97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.
98.string.match(regExpression),判断字符是否匹配.
99.string.replace(regExpression,replaceString)替换现有字符串.
100.string.split(分隔符)返回一个数组存储值.
101.string.substr(start[,length])取从第几位到指定长度的字符串.
102.string.toLowerCase()使字符串全部变为小写.
103.string.toUpperCase()使全部字符变为大写.
104.parseInt(string[,radix(代表进制)])强制转换成整型.
105.parseFloat(string[,radix])强制转换成浮点型.
106.isNaN(变量):测试是否为数值型.
107.定义常量的关键字:const,定义变量的关键字:var


16.以下是43个经典应用知识点:

1. οncοntextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table border οncοntextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制,用在input type="password"上非常有用,这样可以提示用户手动写入
3. οnpaste="return false" 不准粘贴
4. οncοpy="return false;" oncut="return false;" 防止复制
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标
7. <input style="ime-mode:disabled"> 关闭输入法,这个也非常有用
8. 永远都会带着框架<script language="JavaScript"><!-- if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页// --></script>
9. 防止被人frame <SCRIPT LANGUAGE=JAVASCRIPT><!-- if (top.location != self.location)top.location=self.location; // --></SCRIPT>
10. 网页将不能被另存为<noscript><iframe src=*.html></iframe></noscript>
11. 查看网页源代码<input type=button value=查看网页源代码οnclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">
12.删除时确认<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>
14. 光标是停在文本框文字的最后<script language="javascript"> function cc() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart("character",e.value.length); r.collapse(true); r.select(); } </script> <input type=text name=text1 value="123" οnfοcus="cc()">
15. 判断上一页的来源javascript: document.referrer
16. 最小化、最大化、关闭窗口<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> <param name="Command" value="Minimize"></object> <object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> <param name="Command" value="Maximize"></object> <OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"> <PARAM NAME="Command" VALUE="Close"></OBJECT> <input type=button value=最小化 οnclick=hh1.Click()> <input type=button value=最大化 οnclick=hh2.Click()> <input type=button value=关闭 οnclick=hh3.Click()> 本例适用于IE
17.屏蔽功能键Shift,Alt,Ctrl <script> function look(){ if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL } document.οnkeydοwn=look; </script>
18. 网页不会被缓存<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> 或者<META HTTP-EQUIV="expires" CONTENT="0">
19.怎样让表单没有凹凸感? <input type=text style="border:1 solid #000000"> 或<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: 1 solid #000000"></textarea>
20.<div><span>&<layer>的区别? <div>(division)用来定义大段的页面元素,会产生转行<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行<layer>是ns的标记,ie不支持,相当于<div>
21.让弹出窗口总是在最上面: <body οnblur="this.focus();">
22.不要滚动条? 让竖条没有: <body style="overflow:scroll;overflow-y:hidden"> </body> 让横条没有: <body style="overflow:scroll;overflow-x:hidden"> </body> 两个都去掉?更简单了<body scroll="no"> </body>
23.怎样去掉图片链接点击后,图片周围的虚线? <a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>
24.电子邮件处理提交表单<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain"> <input type=submit> </form>
25.在打开的子窗口刷新父窗口的代码里如何写? window.opener.location.reload()
26.如何设定打开页面的大小<body οnlοad="top.resizeTo(300,200);"> 打开页面的位置<body οnlοad="top.moveBy(300,200);">
27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动<STYLE> body {background-image:url(logo.gif); background-repeat:no-repeat; background-position:center;background-attachment: fixed} </STYLE>
28. 检查一段字符串是否全由数字组成<script language="Javascript"><!-- function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141")) alert(checkNum("123214214a1")) // --></script>
29. 获得一个窗口的大小document.body.clientWidth; document.body.clientHeight
30. 怎么判断是否是字符if (/[^/x00-/xff]/g.test(s)) alert("含有汉字"); else alert("全是字符");
31.TEXTAREA自适应文字行数的多少<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight"> </textarea>
32. 日期减去天数等于第二个日期<script language=Javascript> function cc(dd,dadd) { //可以加上错误处理var a = new Date(dd) a = a.valueOf() a = a - dadd * 24 * 60 * 60 * 1000 a = new Date(a) alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日") } cc("12/23/2002",2) </script>
33. 选择了哪一个Radio <HTML><script language="vbscript"> function checkme() for each ob in radio1 if ob.checked then window.alert ob.value next end function </script><BODY> <INPUT name="radio1" type="radio" value="style" checked>Style <INPUT name="radio1" type="radio" value="barcode">Barcode <INPUT type="button" value="check" οnclick="checkme()"> </BODY></HTML>
34.脚本永不出错<SCRIPT LANGUAGE="JavaScript"> <!-- Hide function killErrors() { return true; } window.onerror = killErrors; // --> </SCRIPT>
35.ENTER键可以让光标移到下一个输入框<input οnkeydοwn="if(event.keyCode==13)event.keyCode=9">
36. 检测某个网站的链接速度: 把如下代码加入<body>区域中: <script language=Javascript>
tim=1 setInterval("tim++",100) b=1 var autourl=new Array() autourl[1]="www.njcatv.net" autourl[2]="javacool.3322.net" autourl[3]="www.sina.com.cn" autourl[4]="www.nuaa.edu.cn" autourl[5]="www.cctv.com" function butt(){ document.write("<form name=autof>") for(var i=1;i<autourl.length;i++) document.write("<input type=text name=txt"+i+" size=10 value=测试中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO οnclick=window.open(this.form.url"+i+".value)><br>") document.write("<input type=submit value=刷新></form>") } butt() function auto(url){ document.forms[0]["url"+b].value=url if(tim>200) {document.forms[0]["txt"+b].value="链接超时"} else {document.forms[0]["txt"+b].value="时间"+tim/10+"秒"} b++ } function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 οnerrοr=auto("http://"+autourl+"")>")} run()</script>
37. 各种样式的光标auto :default :标准箭头  hand :手形光标  wait :等待光标  text :I形光标  vertical-text :水平I形光标  no-drop :不可拖动光标  not-allowed :无效光标  help :?帮助光标all-scroll :三角方向标  move :移动标  crosshair :十字标 e-resize n-resize nw-resize w-resize s-resize se-resize sw-resize
38.页面进入和退出的特效进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)"> 推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。
transition表示使用哪种特效,取值为1-23: 0 矩形缩小 1 矩形扩大 2 圆形缩小 3 圆形扩大 4 下到上刷新 5 上到下刷新 6 左到右刷新 7 右到左刷新 8 竖百叶窗 9 横百叶窗 10 错位横百叶窗 11 错位竖百叶窗 12 点扩散 13 左右到中间刷新 14 中间到左右刷新 15 中间到上下 16 上下到中间 17 右下到左上 18 右上到左下 19 左上到右下 20 左下到右上 21 横条 22 竖条 23 以上22种随机选择一种
39.在规定时间内跳转<META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com">
40.网页是否被检索<meta name="ROBOTS" content="属性值"> 其中属性值有以下一些: 属性值为"all": 文件将被检索,且页上链接可被查询; 属性值为"none": 文件不被检索,而且不查询页上的链接; 属性值为"index": 文件将被检索; 属性值为"follow": 查询页上的链接; 属性值为"noindex": 文件不检索,但可被查询链接; 属性值为"nofollow": 文件不被检索,但可查询页上的链接。
41.打开没有最大化、最小化和关闭按钮的窗口 window.open( " url " , " _blank " , " fullscreen=3,titlebar=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,edge:Raised,left=0,top=0,width=200,height=300,false); 上面这段代码大家应该很熟悉了,跟一般打开窗口的代码只有两个地方不同: fullscreen 属性的值在这里被设置成3了,还多了一个edge:Raised参数,注意edge参数的格式,这个参数跟其他参数的格式不一样.
42.鼠标事件event.button:事件发生时表示鼠标的动作如果为1则是鼠标左键 2为鼠标右键不过现在好像MS都已经有8个值了难道以后鼠标的发展方向是8个键?
parentNode:父节点event.ClientX:事件发生时的鼠标x值event.ClientY:事件发生时的鼠标Y值setCapture()方法:建立对象和鼠标之间的通讯也就是说鼠标作用在此对象上时才跟踪鼠标releaseCapture()方法:切断对象和鼠标之间的通讯

17.关于jquery中clone()的问题:
<script>
$("body").click(function(){
$("#txt").clone().appendTo("#test");
});
</script>
这个是把#txt的克隆插入到#test中
<script>
$("body").click(function(){
$("#txt").appendTo("#test");
});
</script>
这个是把#txt自己直接插入到#test中
总结以上可以看到clone()还是非常有用的.

18.关于jquery事件动作后的调用setInterval()的问题:
<script>
$("img").click(function(){
function change(){
$("#test").append("<h1>aaaa</h1>");
}
setInterval("change()",500);
});
</script>
以上程序执行会报错.但以下会:
<script>
$("img").click(function(){
setInterval(function(){
$("#test").append("<h1>aaaa</h1>");
},500);
});
</script>
或者这样运行不会出错,就是让页面打开就开始运行这段程序,这个是让人无奈的地方:
<script>
function change(){
$("#test").append("<h1>aaaa</h1>");
}
setInterval("change()",500);
</script>
以上和特别留意了.

19.如何实现一个页面多个jquery ajax按钮触发效果呢?我前面试过如果用两个button如下,结果它们的事件控制总是混淆在此起,有可能是ajax的options中的global flase|true造成的,但是我改成global flase也不行,点击一个按钮另一个按钮的ajaxStart中的效果也开始了.其实解决的方法很简单,用简单的$.post或$.get方法也可,只不过做个判断而已.如下:
<script>
$("#button").click(function(){
$("#load").show();
$.post("e.php",function(msg){
$("#load").hide();
$("#test").append(msg);
});
});
$("#button2").click(function(){
$("#load2").show();
$.post("e.php",function(msg){
$("#load2").hide();
$("#test2").append(msg);
});
});
</script>
这样两个按钮互不相干了,就可以轻松的实现一个页面多个ajax触发事件和效果.如:loading...或加载img

20.以下是说关于伪对象数组,对象数组和数组的问题:
上图中each()操作的是伪对象数组,而length都可以用,get()操作的是对象数组.
一.得到伪对象数组非常的容易,有两种:
(1) $("img");
(2) document.getElementsByTagName("img")
以上两种得到的肯定是伪对象数组,那么如何访问,方法:$("img")[0]即可得到相应的对象,如何判定,用alert($("img")),得到的是[object Object]
二.得到对象数组的方法:
$("img").get();
alert($("img").get()); 得到object,object,object这很明显是对象数组
三.普通数组:
这个比较简单,var arr=new Array();arr[0]="aa";这种结构即可.
或者用var arr=["aa","bb"];

21.window.event的可用属性:
--altKey属性
--ctrlKey属性
--shiftKey属性
--clientX、clientY属性
--screenX、screenY属性
--offsetX、offsetY属性
--x, y属性
--returnValue属性
--cancelBubble属性
--srcElement属性
--keyCode属性
--button属性

22.关于jquery中的属性问题:
<script>
alert($("img[src^='file']").attr("src"));
alert($("img").attr("src"));
</script>
从上面可以知道,jquery在用[src^='file']或[src*='cry.png']这都可以找到这个图片对象,但是[src^='cry']就不行,说明了一个问题就是当jquery用$("img[src*='cry.png']")这种方式时,它的属性是从file:///c:\.....这种结构,默认的js中也是这样的,但是attr()操作时不管是取值还是赋值都是直接操作basename的.

23.在使用smarty时,如果php中有一个$str=”mystring”;而且$smarty->assign(“str”,$str);但是在客户端的js中却法赋值使用,这个问题如何解决?
(1) 如果要显示string则在不能这样赋值,var str=<{$str}>;而要用var str=”<{$str}>”;
<script>
var str="<{$str}>";
alert(str);

24.关于time对象插入一个id为time的div中时的问题:
<script>
setInterval(function(){
var time=new Date().getTime();
$("#time").text(time);
},1000);
</script>
这样显示微秒是可以成功每秒钟自动刷新一下这个时间的.但是以下就不行:
<script>
setInterval(function(){
var time=new Date();
$("#time").text(time);
},1000);
</script>
这个会提示js语法有错误,其实有个细小的问题就是上面的typeof(time)为number类型,而下面的类型为typeof(time)为object,一般在js中这样一个规律就是:当一个变量的值类型为object,当然数组用$.isArray()来查看,函数用$.isFunction()来查看,而且当是以上类型时是不能随便直接插入一个类似于div这种容器的,你可能给这个容器赋值,比如:$(“test”).append之类的,而只有string或number才可能直接显示出来的,比如用alert(this)
24.html()里面可以是文字也可以是html标签,text()它里面也可以是文字,而且如果在text()里面输入<b></b>这种html标签,这样在见面上会直接显示<b></b>,alert($(“#time”).html())会看到标签实体:
<script>
$("#time").text("<b>aaaaa</b>");
alert($("#time").html());
</script>
总结:从以上也可以从侧面看到就是如果想得到一个标签的实体,可能通过这种方法得到,当然这种标签里是不能放object之类的数据的.
25.有时候通过ie浏览器查看源代码时,却看不到js处理后效果和代码,这个可以通过alert($(“body”).html());来查看.这个不知道为什么,很奇怪.可能在mozilla的浏览器效果会好点.
26.以下可以给一此相同标签的元素加上一个id,按照它们的index值:
<script>
$("p").each(function(i){
$(this).attr("id",i);
});
alert($("body").html());
</script>
27.js中数组的其他定义方法:
<script>
var arr=[]; //var arr=new Array();
arr[0]=1;
arr[1]=2;
arr[2]=3;
alert(arr);
</script>
28.要注意一点就是关于jquery的问题:
Jquery中有很多事例都是关于animate的,而且里面都有left和top这些骆驼样的key,注意这里的left和top是与css中的position:absolute相对应的或者与css中的position:relative相对应.而不用手动把这儿的left或者top改成marginLeft或者marginTop,这样是不太妥当的.
29.注意要透明处理的层d1与要在透明层上弹出的不透明登录框,d2一定不能在d1中,否则d2也会透明,因为继承问题,而且用jquery的fadeIn,fadeOut,animate中的opacity这种效果在各种浏览器中都可达到透明效果.
<body>
<div id=d1>
<img src="a.jpg"><br>
<button id="but" style="width:200px;height:50px">login</button>
</div>
<div id=d2>
<img src="a.jpg" id=log width=500>
<button id="but2">close</button>
</div>
</body>
30.控制鼠标的左右键:
<script>
document.οnmοusedοwn=function(){
if (event.button==2){
alert('你想看什麽?')
}
}
</script>
#1为左键,而2为右键.
31. JavaScript捕获按键
这里顺便说一下判断鼠标按键的问题。 在 IE 里面左键是 window.event.button = 1 右键是 window.event.button = 2 中键是 window.event.button = 4 没有按键动作的时候 window.event.button = 0 在 Firefox 里面左键是 event.button = 0 右键是 event.button = 2
中键是 event.button = 1 没有按键动作的时候 event.button = 0 在 Opera 7.23/7.54 里面鼠标左键是 window.event.button = 1 没有按键动作的时候 window.event.button = 1 右键和中键无法获取而在 Opera 7.60/8.0 里面鼠标左键是 window.event.button = 0 没有按键动作的时候 window.event.button = 0 右键和中键无法获取
32.获取特殊键盘按键的代码:
<script language="javascript"> function test(event) { event = event || window.event; if(event.keyCode==13) { alert("你按了回车") } if(event.shiftKey==true) { alert("你按了shift") } if(event.ctrlKey==true) { alert("你按了ctrl") }
if(event.altKey==true) { alert("你按了alt") }
} </script>
33.把获得的jquery对象,用get()生成元素数组,然后把数组进行加工,最后再插入#test2中:
<body>
<div id="test">
<span><h1>aaaaa</h1></span>
<span><h1>bbbbb</h1></span>
<span><h1>ccccc</h1></span>
</div>
<div id=test2>
</div>
</body>
<script>
var j=$("span").length;
$("#test2").html($("span").clone().get().reverse());
</script>
#上例你得去留意,用get()加工后的产品为dom元素,而并不是jquery对象,不能直接用$(“span”).clone.get().reverse().appendTo(“#test2”);这样是不能实现的,因为appendTo前必须为jquery对象才行,所以得用以上的方法放入jquery对象中.
34. 序列表表格内容为字符串,用于 Ajax 请求
serialize() 返回值:String
<p id="results"><b>Results: </b></p>
<form>
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>
<select name="multiple[]" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select><br/>
<input type="checkbox" name="check[]" value="check1"/> check1
<input type="checkbox" name="check[]" value="check2" checked="checked"/> check2
<input type="radio" name="radio" value="radio1" checked="checked"/> radio1
<input type="radio" name="radio" value="radio2"/> radio2
</form>
注意上面的一个名称有多个值的情况下,最好用数组,这样可以直接用这个序列的字符串结果去调用ajax到php
比如上面的multiple[],check[]这些多选列表
alert($(“form”).serialize());
最后生成的结果
这样传递到php页面,php页面可
以使用,当然前提是通过ajax提交过去.
35.Js对象和jquery对象
<body>
<div id="test">
<h1>aaaaa</h1>
<h1>bbbbb</h1>
<h1>ccccc</h1>
</div>
</body>
<script>
$("h1").each(function(i){
this.id="id\n"+i;
$(this).data("index",this.id);
});
alert($("h1").eq(0).data("index"));
</script>
#从以上js中可以看出,jquery对象用jquery对象的属性和方法,而js对象只能用js对象的属性和方法,其他的地方都可以随便使用.
36.在JSON中,有两种结构:对象和数组
1.json对象:
json={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2.json对象数组:
jsonarr=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
#jquery中把json字符串转变成json对象的方法:
Jsonstr=’{“name”:”lqqhwei”}’;
Jsonobj=$.parseJSON(jsonstr);
Alert(jsonobj.name); #此时jsonobj已经是jsonstr的对象了,它有一个属性-name.
37.关于jquery中slideUp()和slideDown()方法的区别:
1)slideUp()是一个display:block的元素上可加的运动,已存在的元素向上滑动消失.
2)slideDown()是一个display:none的元素上可加的运动,已隐藏的元素向下滑动出现.
38.关于jquery中fadeIn()和fadeOut()方法的区别:
1)fadeIn()是隐藏的元素如何进入
2)fadeOut()是显示的元素如何隐藏
38.不用jquery把textarea中的文档前后的空格取掉
<body>
<form action="" method="get" οnsubmit="sub(this)">
<textarea name="txt">
</textarea>
<input type=submit>
</form>
</body>
<script>
function trim(str){
if(str){
return str=str.replace(/^(\s*)(\w+.*\w+)(\s*)$/,"$2");
}
}
function sub(form){
form.elements[0].value=trim(form.elements[0].value);
}
</script>
#核心在于其中的正则替换,一定要注意,如果有jquery则很简单直接用$.trim直接就行.
39.汉字在不同的程序中的编码大小:
C语言中=>4字节
Js=>2字节
Php=>3字节(utf8编码)
而且有时有js中用alert(“1sS#中”.length)的值是5,是不对的.如何解决:
function len(s) {
var l = 0;
var a = s.split("");
for (var i=0;i<a.length;i++) {
if (a[i].charCodeAt(0)<299) {
l++;
} else {
l+=2;
}
}
return l;
}
alert(len("1sS#中"));
#最后显示的结果是6,这样就ok啦,注意在js中Unicode编码中,中文在299开始的.
如何判断一个变量是否是中文呢?
function f_check_zh(obj){ if (/^[\u4e00-\u9fa5]+$/.test(obj.value)) { return true; } f_alert(obj,"请输入汉字"); return false; }
#通过以上的\u4e00-\u9fa5代表的是js中中文的代表符号.
40.测试一串值中哪些是中文哪些不是中文:
<script>
var str="中国";
for(var i=0;i<str.length;i++){
if(/^[\u4e00-\u9fa5]+$/.test(str.charAt(i))){
document.write(true+"<br>");
}else{
document.write(false+"<br>");
}
}
</script>
41. 检查输入字符串是否只由汉字、字母、数字组成:
function f_check_ZhOrNumOrLett(obj){ //判断是否是汉字、字母、数字组成 var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$"; var re = new RegExp(regu); if (re.test( obj.value )) { return true; } f_alert(obj,"请输入汉字、字母或数字"); return false; }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值