类似于这样子的JSON串:
[{"6":[["填空题",1,0],["判断题",1,0],["作文",1,0]]}]
也就是以数字作为KEY值的JSON串。
如果按照通常的方式去解析:
var obj = jQuery.parseJSON(t);
通过obj.6来获取KEY为6的value值是会报错的,说JSON的KEY值不能是数字。
此时可以用类似于数组的方式来取:obj[6]
这样就取出KEY值是“6”的value值了。
当KEY值为6的时候处理起来太麻烦了,还得跟别人不一样,怪不得在注册用户、命名的时候不然以数字打头了,通过这么个例子可见一斑了。
另外,对于类似于数组一样的取值方法,想到了经常用的一种情况:数据库里面定义了一些关键字,这些关键字我们不能随便用,但是有时候为了“见名知意”的原则还是会用上关键字,可是人家不让用啊,怎么办呢?加个中括号,加上去之后好像数据库就不认它了,把它当做咱们的了。
摘自: http://747017186.iteye.com/blog/2071201
2、事件冒泡
最简单的例子:
function fuDIV(){ alert("父DIV事件"); }
function ziDIV(){ alert("子DIV事件");}
<div style="width: 500px;height: 400px;" onclick="fuDIV();">
<div style="width: 300px;height: 200px;" onclick="ziDIV();"></div>
</div>
点击子级DIV的时候,子级的事件会触发(弹出“子DIV事件”),同时父级的DIV也会触发(弹出“父DIV事件”),为什么会这样子?因为事件冒泡。
事实上,页面上的元素事件是这样传播的:
最里面的元素事件触发(子级)——外层元素事件触发(父级)——页面事件触发(页面级)
由于子级DIV嵌套在父级DIV内部,所以在点击子级DIV时,因为事件的传播,子级的事件也传播到父级了,此时父级的DIV也点击了,所以子级DIV的click事件会被触发,父级DIV的click事件也会被触发。
但是这种大部分时候都不是我们想要的,我们仅仅想让子DIV的事件触发,父DIV事件不触发。我们可以采取这个方式:
在子级执行的方法里面添加代码:event.stopPropagation();
function ziDIV(event){
alert("子DIV事件");
event.stopPropagation(); //阻止子事件向父事件冒泡
}
摘自:http://747017186.iteye.com/blog/2071567
3、让数字不显示成科学计数法
有时候数据过大时(主要是double类型),数据会自动用科学计数法显示,不好看且不太容易看明白,因此需要处理一下。
a、用Java代码处理:
double str=31455555555555555555555555555555555555555555555d;//很大的数
DecimalFormat format=(DecimalFormat)NumberFormat.getPercentInstance(); //取得一个模板
format.applyPattern("#####0"); //前面是非数字,如果不是数字则0补充
String temp=format.format(str); //格式化
System.out.println(temp);//这样就变成字符串了,不需要科学计数法了
b、用JS处理:
var i=3.14E10;
var no=new Number(i);
alert(no);
c、用fmt标签处理:
首先导入fmt标签:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
然后设置格式格式化数据:
<fmt:formatNumber value="3.14E10" maxIntegerDigits="10" maxFractionDigits="4" pattern="####.####"></fmt:formatNumber>。
fmt标签的详细用法可以参考:
http://lvhjean.iteye.com/blog/1221055、
http://blog.csdn.net/itchiang/article/details/7749081
摘自:http://747017186.iteye.com/blog/2152720
4、使用Jquery解析XML格式的字符串:
JS提交参数及返回数据情况如下:
$.post("loginRouter!login.action",{"flag":1,"time":new Date().getTime()},function(data){ if(data.length>1){ //后台返回的数据格式为:response.setContentType("text/html"); //返回数据格式如下:<tsp><num>10</num><liStr>.....</liStr></tsp> data = $.parseXML(data);//先使用jQuery的parseXML方法转换成Jquery的XML对象 var num = $(data).find('num').text();//数量 var liStr = $(data).find('liStr').text();//拼接的HTML alert(num+"\n"+liStr); } });
5、变量命名规则:
a、Camel标记法——即有名的骆驼标记法,首字母小写,接下来的单词都以大写字母打头,如:
var myTestValue=0,mySecondTestValue="0";
b、Pascal标记法——首字母大写,接下来的单词都以大写字母打头,如:
var MyTestValue=0,MySecondTestValue="0";
c、匈牙利类型标记法——在以Pascal标记命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型。如:i表示整数,s表示字符串。变量举例如下:
var iMyTestValue=0,sMySecondTestValue="0";
下表列出了匈牙利类型标记法定义变量所使用的前缀名称:
序号 |
类型 |
前缀 |
示例 |
1 |
数组(array) |
a |
aFirstValues,aSecondValues |
2 |
布尔型(boolean) |
b |
bFirstValues,bSecondValues |
3 |
浮点型(数字,float) |
f |
fFirstValues,fSecondValues |
4 |
函数(function) |
fn |
fnFirstValues,fnSecondValues |
5 |
整型(数字,int) |
i |
iFirstValues,iSecondValues |
6 |
对象(object) |
o |
oFirstValues,oSecondValues |
7 |
正则表达式(Regular Expression) |
re |
reFirstValues,reSecondValues |
8 |
字符串(String)() |
s |
sFirstValues,sSecondValues |
9 |
变型(可以是任何类型) |
v |
vFirstValues,vSecondValues |
相关推荐
这是本人做Web项目开发以来总结的一些小经验!
小目标积累是Keystone变换在低空小目标探测中的一个关键应用。通过多次积累,可以将多个微弱的小目标信号叠加在一起,达到信号强度的累加,从而提升目标的检测概率。同时,这种方法还可以抑制背景噪声,提高信噪比,...
小学生如何积累词语PPT学习教案.pptx
在雷达技术领域,信号处理是核心部分之一,而“非相参积累”是其中的关键概念。本文将深入探讨非相参积累的原理、应用及其在雷达信号处理中的作用。 首先,我们要理解什么是“非相参积累”。在雷达系统中,雷达信号...
小学生成语积累.pdf
小学生词语积累.doc
抖音小店运营进阶 -03:达人资源积累.pdf
微信小程序开发过程中积累的一些代码小程序开发过程中积累的一些微码介绍本人在小程序开发过程中遇到很多问题,开源学到了很多,打算回馈一下,把自己在开发过程中遇到的一些问题总结下来,也欢迎大家一起交流共同进...
小学生词语积累大全.doc
小学生成语分类积累.doc
小学生好词好句积累.doc
使用仿真软件 Matlab 产生一定载频和宽度的脉冲串,并叠加高斯白噪声, 信噪比为 1。编写程序进行相参积累并对比不同积累方式下信噪比的大小。
小学生必要积累的内容.doc
小学生古诗词分类积累.doc
最新小学生必备文学常识积累.pdf
语文小课题农村中学生作文素材积累策略研究——结题材料精选.pdf