工作笔记总结——前台js—jQuery—HTML
2013-05-13 13:30
519 查看
1、js精确计算两个浮点数加法
思路:将乘数和被乘数乘以小数点较大的10的幂指数方,将浮点数转换为整数,然后相加后除以幂指数方即可转化为小数
例子:
2、jQuery
1)jQuery中选择器中多个条件中间有一个空格表示前面的选择器满足后,只要它的后代节点中有满足第二个条件的即可,如果中间是”~“ 则表示必须是儿子节点。
如:$("form table")表示form下的子节点中所有的table,而$("form ~ table")表示form的儿子节点中中的table。
2)jQuery实现元素隐藏
$("#xxx").css('display', 'none');
3、js数组
var arrayObj = new Array();
arrayObj.push(obj); //将obj对象放到数组中
arrayObj.pop(); //弹出最上面的元素
属性:length、constructor、prototype
5、param获取URL中的参数,示例代码:
${param.arg1}
6、在jsp中使用EL表达式获取后台对象时,最好指定域,page、request、Session、application,示例代码:
request: ${requestScope.user.userId} // 拿request域中user对象中的userId属性
7、EL表达式中两种获取属性方式“."和”[ ]“,前者是获取bean属性或是Map,后者是获取数组或是List,也可以结合使用,示例代码:
${sessionScope.userinf[0].id } // 获取Session中第一个user的id属性,使用“[ ]”可以使用特殊字符
8、js中top.parent.frame
top:该变量永远只分割窗口最高层次的浏览器窗口,如果计划从分割窗口的最高层次开始执行命令,可以用top变量
分割窗口:frameset或iframe中
获取frame文档对象:$(window.parent.frames["frameId“].document}
9、替换HTML中标签j替换为空字符串js代码
示例代码:
10、在jsp中文档头部一般使用严格的:<!DOCTYPE HTML>即可,其他的都是过渡和基于框架的,否则会导致页面中样式的显示有些奇怪的问题
11、对于使用jQuery中的replace时,将<a>标签替换原来的文字时,a标签中的标签乱了,是因为onclick=后面的需要用双引号,并且需要转义,不然会导致引号不匹配
1)单/双引号匹配问题会导致浏览器解析标签错乱
2)双引号需要转义
12、添加自定义属性到标签时,最好全部小写,否则有的浏览器解析会将属性全部转换为小写,这样就和原来我们自己定义的不一样了,导致取不到DOM对象,其二就是标签属性按照规范来的话也都是小写。
14、jQuery1.4和jQuery1.7使用上的不同
对于使用“[ ]”来去取dom对象的选择器在1.4上有时会失效,1.7比较稳定
13、对于input为reset类型的输入域,在刚进入页面时调用jQuery的click方法后,在input标签中的onclick属性就会被移除掉
14、在多个frame嵌套下可以通过top那第二层frame,以name拿,并且可以调用对应jsp页面的js方法,例如:
15、IE6兼容问题
1)a标签中的onclick表单submit不管用了,因为如果有href属性的话,默认行为是href后的代码,不会提交表单了,有两种解决方案:
一、不加href属性,样式中加上手型,模拟超链接:
代码如下:
二、在onclick方法后加上return false,阻止a标签的默认行为;
代码如下:
2)HTML标签中name一般不允许更改,在IE6/IE7中不能更改,IE8可以更改,在IE7中如果对name进行赋值,将会添加submitName属性,值为想要更改name的值
,IE6我就看不到了
3)使用artDialog组件做弹出窗口时,将一个隐藏的form作为弹出窗的content,在还没有弹出该窗口时对隐藏的那个form进行标签中移除readonly属性的操作时,当需要将隐藏的form放到artDialog后,弹出来的form中依然有readonly属性,只有先将隐藏的form放到artDialog后在对form中的标签中移除readonly属性才可以成功。分析可能是IE6下无法识别别隐藏的form的原因吧,大家怎么看
16、resize多次被调用问题
在页面上点击或blur也会触发resize事件,而且不止调用一次,可以采用wresize插件解决,也可以通过设置一定的延时
17、在js中调用setTimeout方法时,由于异步的原因,最好调用setTimeout的方法后面不要有其他代码,或者是一些不会影响到setTimeout方法中调用的函数的执行,否则会导致两者同时执行时被延时的方法还没执行完,下面的代码却需要上面的结果,这样会导致页面报错,在setTimeout中函数以方法名出线,不要加括号。
18、页面表单中的输入域最好都加上英文的非法字符(包括英文表单符号),否则如果添加记录时输入java脚本后其中的内容将无法显示,但是已经存到了数据库,如“<%=test%>”,在页面列表中无法看到该内容,只有空白。
19、使用iframe或者frameset框架时不要让其滚动,不然点击出现的滚动条会jQuery报错:nodeName不是对象的错误,设置scrolling=“no",frameborder=“0”是设置边框的,默认是那种很丑的边框,一般去掉,想要加滚动条可以再frame内部的页面加滚动条。
20、使用iframe或者frameset框架时获取顶部窗口对象使用top,parent只是获取上层窗口; 计算某个元素的宽度或高度是,采用整个窗口的宽度或高度,如$(window).height();
21、使用el表达式时,对于不等使用nq,不是neq,相等是eq,对于list是否为空时,采用${empty request.result}
22、实现省略“...”需要设置style中text-overflow 和 overflow:hidden; width: 100px;
23、ie8下div下的input个数为一个时input会往上移动一点,超过一个时才会显示正常,margin才会正常起效
解决:使用span包裹在input外面即可
24、使用正则表达式获取html中的属性
Pattern p = Pattern.compile("<img[^<>]*?\\ssrc=(['\"])?(.*?)\1?\\s.*?>");
Matcher m = p.matter(html);
while(m.find()) {
imgPath = m.group(2);
}
思路:将乘数和被乘数乘以小数点较大的10的幂指数方,将浮点数转换为整数,然后相加后除以幂指数方即可转化为小数
例子:
<html> <head> <script type="text/javascript"> function test() { FloatAdd(12.1112,0.00001100003999); //alert(); } //浮点数加法运算 function FloatAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} m=Math.pow(10,Math.max(r1,r2)); alert((arg1*m+arg2*m)/m); //return (arg1*m+arg2*m)/m } </script> </head> <body> <a onclick="test();" href="#">测试浮点数加法</a> </body> </html>
2、jQuery
1)jQuery中选择器中多个条件中间有一个空格表示前面的选择器满足后,只要它的后代节点中有满足第二个条件的即可,如果中间是”~“ 则表示必须是儿子节点。
如:$("form table")表示form下的子节点中所有的table,而$("form ~ table")表示form的儿子节点中中的table。
2)jQuery实现元素隐藏
$("#xxx").css('display', 'none');
3、js数组
var arrayObj = new Array();
arrayObj.push(obj); //将obj对象放到数组中
arrayObj.pop(); //弹出最上面的元素
属性:length、constructor、prototype
5、param获取URL中的参数,示例代码:
${param.arg1}
6、在jsp中使用EL表达式获取后台对象时,最好指定域,page、request、Session、application,示例代码:
request: ${requestScope.user.userId} // 拿request域中user对象中的userId属性
7、EL表达式中两种获取属性方式“."和”[ ]“,前者是获取bean属性或是Map,后者是获取数组或是List,也可以结合使用,示例代码:
${sessionScope.userinf[0].id } // 获取Session中第一个user的id属性,使用“[ ]”可以使用特殊字符
8、js中top.parent.frame
top:该变量永远只分割窗口最高层次的浏览器窗口,如果计划从分割窗口的最高层次开始执行命令,可以用top变量
分割窗口:frameset或iframe中
获取frame文档对象:$(window.parent.frames["frameId“].document}
9、替换HTML中标签j替换为空字符串js代码
示例代码:
s.replace("/<[^>]+>/g", "");
10、在jsp中文档头部一般使用严格的:<!DOCTYPE HTML>即可,其他的都是过渡和基于框架的,否则会导致页面中样式的显示有些奇怪的问题
11、对于使用jQuery中的replace时,将<a>标签替换原来的文字时,a标签中的标签乱了,是因为onclick=后面的需要用双引号,并且需要转义,不然会导致引号不匹配
1)单/双引号匹配问题会导致浏览器解析标签错乱
2)双引号需要转义
12、添加自定义属性到标签时,最好全部小写,否则有的浏览器解析会将属性全部转换为小写,这样就和原来我们自己定义的不一样了,导致取不到DOM对象,其二就是标签属性按照规范来的话也都是小写。
14、jQuery1.4和jQuery1.7使用上的不同
对于使用“[ ]”来去取dom对象的选择器在1.4上有时会失效,1.7比较稳定
13、对于input为reset类型的输入域,在刚进入页面时调用jQuery的click方法后,在input标签中的onclick属性就会被移除掉
14、在多个frame嵌套下可以通过top那第二层frame,以name拿,并且可以调用对应jsp页面的js方法,例如:
top.navFrame.insertTabs('1', true); //调用一级frame下以navFrame为name的frame,调用inserTabs方法;
//如果想拿到对应frame的dom对象,可以使用如下写法
$(top.navFrame.docment).find("#first"); //查找navFram中以first为id的元素;
注:也可以使用parent替换top,top指的是最外层的dom,parent指的是当前页面的上级页面,有时候可以通用
15、IE6兼容问题
1)a标签中的onclick表单submit不管用了,因为如果有href属性的话,默认行为是href后的代码,不会提交表单了,有两种解决方案:
一、不加href属性,样式中加上手型,模拟超链接:
代码如下:
<a onclick="test();" style="curse :pointer" >test</a>
二、在onclick方法后加上return false,阻止a标签的默认行为;
代码如下:
<a href="javascript:void(0);" onclick="test();return false;" >test</a>
2)HTML标签中name一般不允许更改,在IE6/IE7中不能更改,IE8可以更改,在IE7中如果对name进行赋值,将会添加submitName属性,值为想要更改name的值
,IE6我就看不到了
3)使用artDialog组件做弹出窗口时,将一个隐藏的form作为弹出窗的content,在还没有弹出该窗口时对隐藏的那个form进行标签中移除readonly属性的操作时,当需要将隐藏的form放到artDialog后,弹出来的form中依然有readonly属性,只有先将隐藏的form放到artDialog后在对form中的标签中移除readonly属性才可以成功。分析可能是IE6下无法识别别隐藏的form的原因吧,大家怎么看
16、resize多次被调用问题
在页面上点击或blur也会触发resize事件,而且不止调用一次,可以采用wresize插件解决,也可以通过设置一定的延时
17、在js中调用setTimeout方法时,由于异步的原因,最好调用setTimeout的方法后面不要有其他代码,或者是一些不会影响到setTimeout方法中调用的函数的执行,否则会导致两者同时执行时被延时的方法还没执行完,下面的代码却需要上面的结果,这样会导致页面报错,在setTimeout中函数以方法名出线,不要加括号。
18、页面表单中的输入域最好都加上英文的非法字符(包括英文表单符号),否则如果添加记录时输入java脚本后其中的内容将无法显示,但是已经存到了数据库,如“<%=test%>”,在页面列表中无法看到该内容,只有空白。
19、使用iframe或者frameset框架时不要让其滚动,不然点击出现的滚动条会jQuery报错:nodeName不是对象的错误,设置scrolling=“no",frameborder=“0”是设置边框的,默认是那种很丑的边框,一般去掉,想要加滚动条可以再frame内部的页面加滚动条。
20、使用iframe或者frameset框架时获取顶部窗口对象使用top,parent只是获取上层窗口; 计算某个元素的宽度或高度是,采用整个窗口的宽度或高度,如$(window).height();
21、使用el表达式时,对于不等使用nq,不是neq,相等是eq,对于list是否为空时,采用${empty request.result}
22、实现省略“...”需要设置style中text-overflow 和 overflow:hidden; width: 100px;
23、ie8下div下的input个数为一个时input会往上移动一点,超过一个时才会显示正常,margin才会正常起效
解决:使用span包裹在input外面即可
24、使用正则表达式获取html中的属性
Pattern p = Pattern.compile("<img[^<>]*?\\ssrc=(['\"])?(.*?)\1?\\s.*?>");
Matcher m = p.matter(html);
while(m.find()) {
imgPath = m.group(2);
}
相关文章推荐
- 工作笔记总结——前台js和jQuery
- 学习js和html的总结笔记,参考W3C网站
- 今日工作总结:jquery轮转效果的集成与前台页面banner的设计思路总结
- javascript/jquery/html/css工作总结
- html+css+js(JQuery)使用笔记(随时更新)
- web前台工作笔记(时间戳、js中clone的使用、js中动态填充数据注意事项、前台查错方法的学习)
- Html Jquery/Js控制audio总结
- js+html+jquery 个人笔记
- j2ee学习笔记之前端(js、jQuery、html、html5、webService、ajax、css)—— 一直会补充
- Asp.Net实现JS前台带箭头的流程图方法总结!(个人笔记,信息不全)
- c#/asp.net/html/css/js/jquery 实用小方法 整理笔记
- 一句话总结:工作,用jQuery,怎么快怎么来;学习,用js,怎么精怎么来
- JQuery笔记(表单验证)八 metadata-demo.html jquery.metadata.js
- [JS][jQuery]清空元素html("")、innerHTML="" 与 empty()的区别:关于内容泄露问题
- 前端笔记----jquery入门知识点总结
- 前台防止表单重复提交的方法。Jquery、js
- 工作笔记——js与文件上传下载
- jQuery基础教程笔记适合js新手第1/2页
- HTML&JS&DOM笔记总纲
- jquery总结--学习笔记(1)