myNote
来源:互联网 发布:淘宝小二会旺旺联系吗 编辑:程序博客网 时间:2024/04/29 19:06
myeclipse快捷键:
快速查找类的所有属性和方法(还可输入条件):
ctrl + o
再无聊的时光都是限量版的
学海无涯,我离大师还有多远!研究jquery源代码!
注意学以致用,多想想自己如何使用先进的技术
学海无涯,我离大师还有多远!研究jquery源代码!
注意学以致用,多想想自己如何使用先进的技术
没事时要认真做的事:
1、研究jquery源代码(myeclipse 开卷有益)
3、研究Struts2,分析源代码
1、研究jquery源代码(myeclipse 开卷有益)
3、研究Struts2,分析源代码
备忘学习资料:
js学习笔记.doc //要经常复习
Javascript学习笔记5——类和对象.doc
javascript继承的写法_三水清.mht
javascript+王者归来.pdf
js学习笔记.doc //要经常复习
Javascript学习笔记5——类和对象.doc
javascript继承的写法_三水清.mht
javascript+王者归来.pdf
db2分页:
select * from (select 字段1,字段2,字段3,字段4,字段5,rownumber() over(order by 排序字段 asc ) as rowid from 表名 )as a where a.rowid >= startPage AND a.rowid <endPage
select * from (select 字段1,字段2,字段3,字段4,字段5,rownumber() over(order by 排序字段 asc ) as rowid from 表名 )as a where a.rowid >= startPage AND a.rowid <endPage
js庸俗的if:
错误写法:
if(name != null)...
帅气的写法:
if(name)...
错误写法:
if(name != null)...
帅气的写法:
if(name)...
js正则--exec、match区别:
1、reg.test(str)//返回true,false 2、reg.exec(str)//返回匹配 3、str.match(reg)//返回匹配,与exec反着
exec返回分组(exec永远只返回一个值),match返回所有匹配
javascript exec match 区别 - makemyownlife - ITeye技术网站.mht
1、reg.test(str)//返回true,false 2、reg.exec(str)//返回匹配 3、str.match(reg)//返回匹配,与exec反着
exec返回分组(exec永远只返回一个值),match返回所有匹配
javascript exec match 区别 - makemyownlife - ITeye技术网站.mht
db2中模糊查找表:
select * from sysibm.systables where type='T' and creator = 'SNDBUSR' and name like upper('%city%') order by name;
select name from sysibm.systables where type='T' and creator='DB2ADMIN';
type:数据库表用T表示;数据库视图用V表示
creator:数据库对象的创建者
db2查询表的所有列:(注意表名要大写)
select * from sysibm.syscolumns where tbname like 'XBOOK_SHELF' and name in ('FIELD1','FIELD3');
--like oracle dual
select 1 from sysibm.sysdummy1;
select sysdate from sysibm.sysdummy1;
修改column默认值:
alter table SNDBUSR.xbook_shelf alter column field1 set default -1;
alter table SNDBUSR.xbook_shelf alter column field3 set default '0';
删除含有null的数据:
delete from xbook_shelf where field3 = '0' or field3 is null;
这样才可删除field3 !='1'的数据,
如果直接delete from xbook_shelf where field3 !='1',这样是删除不了含有null的数据的
db2的null.doc
select * from sysibm.systables where type='T' and creator = 'SNDBUSR' and name like upper('%city%') order by name;
select name from sysibm.systables where type='T' and creator='DB2ADMIN';
type:数据库表用T表示;数据库视图用V表示
creator:数据库对象的创建者
db2查询表的所有列:(注意表名要大写)
select * from sysibm.syscolumns where tbname like 'XBOOK_SHELF' and name in ('FIELD1','FIELD3');
--like oracle dual
select 1 from sysibm.sysdummy1;
select sysdate from sysibm.sysdummy1;
修改column默认值:
alter table SNDBUSR.xbook_shelf alter column field1 set default -1;
alter table SNDBUSR.xbook_shelf alter column field3 set default '0';
删除含有null的数据:
delete from xbook_shelf where field3 = '0' or field3 is null;
这样才可删除field3 !='1'的数据,
如果直接delete from xbook_shelf where field3 !='1',这样是删除不了含有null的数据的
db2的null.doc
1、undefined
在ie中,undefined可以被重写,firefox中不可以
undefined = "this is undefined";
alert(undefined);
2、正则:\s匹配单个空格符,tab键和换行符(\r、\n)
3、正则 \i:不区分大小写,eg:
匹配由26个英文字母组成的字符串:^[A-Za-z]+$ 也可写成:/^[a-z]+$/i
在ie中,undefined可以被重写,firefox中不可以
undefined = "this is undefined";
alert(undefined);
2、正则:\s匹配单个空格符,tab键和换行符(\r、\n)
3、正则 \i:不区分大小写,eg:
匹配由26个英文字母组成的字符串:^[A-Za-z]+$ 也可写成:/^[a-z]+$/i
js 原型继承法:
//Person类
function Person(){
this.introduce = function(){
alert("This is Person");
}
}
//Student类
function Student(){
}
如何让Student继承Person?
Student.prototype = new Person();
//把一个Person实例的所有属性和方法添加到Student的Prototype上面去,这样就相当于Student继承了Person
Student.prototype.constructor = Student;
//第一步继承的时候会将Student的构造方法变成Person,因此需要在第二步需要重新设置Student的构造方法
//javascript王者归来关于prototype的讲解还是很详细很细致的
var stu = new Student();
stu.introduce();
这句
Student.prototype = new Person();
相当于完全删除了prototype 对象原先的值,然后赋予一个新值。那么第二行又是什么意思呢?
Student.prototype.constructor = Student;原来,任何一个prototype对象都有一个constructor属性,指向它的构造函数。也就是说,
Student.prototype 这个对象的constructor属性,是指向Student的。
我们在前一步已经删除了这个prototype对象原来的值,所以新的prototype对象没有
constructor属性,需要我们手动加上去,否则后面的”继承链”会出问题。这就是第二行的意思。
混合继承法:
//People类
function People(name){
this.name=name;
this.SayName=function(){
alert("My name is "+name);
}
}
//Girl类
function Girl(name,age){
//构造继承
this.father=People;
this.father(name); //将People的所有属性和方法添加到Girl上面
delete this.father;
//不使用构造方法,也可使用call
//People.call(this, name);
this.Introduce=function(){
alert("My name is "+name+".I am"+age);
}
}
//原型继承
Girl.prototype=new People();
//好了,两种方式的混合,现在看看,是不是问题解决了呢?
var g=new Girl("Xuan",22);
alert(g instanceof People);
g.SayName();
g.Introduce();
//Person类
function Person(){
this.introduce = function(){
alert("This is Person");
}
}
//Student类
function Student(){
}
如何让Student继承Person?
Student.prototype = new Person();
//把一个Person实例的所有属性和方法添加到Student的Prototype上面去,这样就相当于Student继承了Person
Student.prototype.constructor = Student;
//第一步继承的时候会将Student的构造方法变成Person,因此需要在第二步需要重新设置Student的构造方法
//javascript王者归来关于prototype的讲解还是很详细很细致的
var stu = new Student();
stu.introduce();
这句
Student.prototype = new Person();
相当于完全删除了prototype 对象原先的值,然后赋予一个新值。那么第二行又是什么意思呢?
Student.prototype.constructor = Student;原来,任何一个prototype对象都有一个constructor属性,指向它的构造函数。也就是说,
Student.prototype 这个对象的constructor属性,是指向Student的。
我们在前一步已经删除了这个prototype对象原来的值,所以新的prototype对象没有
constructor属性,需要我们手动加上去,否则后面的”继承链”会出问题。这就是第二行的意思。
混合继承法:
//People类
function People(name){
this.name=name;
this.SayName=function(){
alert("My name is "+name);
}
}
//Girl类
function Girl(name,age){
//构造继承
this.father=People;
this.father(name); //将People的所有属性和方法添加到Girl上面
delete this.father;
//不使用构造方法,也可使用call
//People.call(this, name);
this.Introduce=function(){
alert("My name is "+name+".I am"+age);
}
}
//原型继承
Girl.prototype=new People();
//好了,两种方式的混合,现在看看,是不是问题解决了呢?
var g=new Girl("Xuan",22);
alert(g instanceof People);
g.SayName();
g.Introduce();
js各种类型转换成布尔规则:
1、undefined
alert(!!undefined);//false
alert(!undefined);//true
说明undefined为false
2、null
alert(!!null);//false
alert(!null); //true
说明null为false
3、Object
非null时为true,null时为false
var obj = null;
alert(!!obj);//false
obj = {};
alert(!!obj);//true
4、String
非空字符串为true,""(空字符串)为false
var obj = "";
alert(!!obj);//false
obj = "xx";
alert(!!obj);//true
5、Number
非0和NAN为true,0和NAN为false
var i = 0;
alert(i+"\t"+(!!i));
i = parseInt("xx");
alert(i+"\t"+(!!i));
i =1;var j = -1;
alert(i+"\t"+(!!i)+"\t"+j+"\t"+(!!j));
Tip:
1、typeof返回的结果始终是一个字符串
2、所有变量都用var定义,变量类型根据值来判断
3、不存在值为null的string
4、undefined转换为boolean时为false
5、null类型为object(typeof(null)=="object")
6、alert(undefined == null) //true
1、undefined
alert(!!undefined);//false
alert(!undefined);//true
说明undefined为false
2、null
alert(!!null);//false
alert(!null); //true
说明null为false
3、Object
非null时为true,null时为false
var obj = null;
alert(!!obj);//false
obj = {};
alert(!!obj);//true
4、String
非空字符串为true,""(空字符串)为false
var obj = "";
alert(!!obj);//false
obj = "xx";
alert(!!obj);//true
5、Number
非0和NAN为true,0和NAN为false
var i = 0;
alert(i+"\t"+(!!i));
i = parseInt("xx");
alert(i+"\t"+(!!i));
i =1;var j = -1;
alert(i+"\t"+(!!i)+"\t"+j+"\t"+(!!j));
Tip:
1、typeof返回的结果始终是一个字符串
2、所有变量都用var定义,变量类型根据值来判断
3、不存在值为null的string
4、undefined转换为boolean时为false
5、null类型为object(typeof(null)=="object")
6、alert(undefined == null) //true
js--闭包理解
var name = "The Window";
var object = {
name:"My Object",
getName:function(){
return function(){
return this.name;
//return name; //this可省略 这个this为object的宿主
};
//return this.name;
}
}
alert(object.getName()()); //The Window
理解:
1、object.getName()=function(){return this.name;}
2、object.getName = function(){
return function(){
return this.name;
}
}
3、object.getName()() == this.name
var name = "The Window";
var object = {
name:"My Object",
getName:function(){
return function(){
return this.name;
//return name; //this可省略 这个this为object的宿主
};
//return this.name;
}
}
alert(object.getName()()); //The Window
理解:
1、object.getName()=function(){return this.name;}
2、object.getName = function(){
return function(){
return this.name;
}
}
3、object.getName()() == this.name
求金额的正则表达式,保留小数点后两位
var re = /^(-)?(\d)*(\.(\d){2})?$/;
?:0个或一个
+:1个或多个
*:0个或多个
reg.test(str);
手机正则:/^0*(13|15)\d{9}$/ //现在应该为:/^0*1\d{10}/$
电话号码正则: /^(\d{3,4}-)?\d{7,8}(-\d{3,4})?$/
^\d{3,4}-:区号必填为3-4位的数字,区号之后用“-”与电话号码连接
\d{7,8}:电话号码为7-8位的数字
(-\d{3,4})?:分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接
身份证号码的匹配:身份证号码可以是15位或者是18位,其中最后一位可以是X,其它全是数字:
/^(\d{14}|\d{17})(\d|[xX])$/
\d{9}:9位数字
\d{3,4}:3-4位数字
\d:1位数字
[xX]:x、X其中一个
|:或的意思
var re = /^(-)?(\d)*(\.(\d){2})?$/;
?:0个或一个
+:1个或多个
*:0个或多个
reg.test(str);
手机正则:/^0*(13|15)\d{9}$/ //现在应该为:/^0*1\d{10}/$
电话号码正则: /^(\d{3,4}-)?\d{7,8}(-\d{3,4})?$/
^\d{3,4}-:区号必填为3-4位的数字,区号之后用“-”与电话号码连接
\d{7,8}:电话号码为7-8位的数字
(-\d{3,4})?:分机号码为3-4位的数字,非必填,但若填写则以“-”与电话号码相连接
身份证号码的匹配:身份证号码可以是15位或者是18位,其中最后一位可以是X,其它全是数字:
/^(\d{14}|\d{17})(\d|[xX])$/
\d{9}:9位数字
\d{3,4}:3-4位数字
\d:1位数字
[xX]:x、X其中一个
|:或的意思
javascript是脚本语言,所以javascript的执行需要有一个宿主环境(拥有内存空间的对象),
在浏览器中这个宿主环境就是window对象,所以在全局函数中,this指代的是window对象(当前对象就是window)
(除非使用new({}),call,apply方法来改变this的指代关系)。
window.alert();window可省略,也可用this.alert();//this == window
this表示当前对象,所以new时this表示这个new出来的对象
在浏览器中这个宿主环境就是window对象,所以在全局函数中,this指代的是window对象(当前对象就是window)
(除非使用new({}),call,apply方法来改变this的指代关系)。
window.alert();window可省略,也可用this.alert();//this == window
this表示当前对象,所以new时this表示这个new出来的对象
watch窗口:变量窗口 右击 watch(有时不给力)
共享:\\10.21.140.98
document.getElementById("btn").onclick = test;
全写为window.document.getElementById("btn");//省略了window
window.alert("xxxxxxxx");//内涵
全写为window.document.getElementById("btn");//省略了window
window.alert("xxxxxxxx");//内涵
js--扩展Date,给Date添加一个dateDiff方法
Date.prototype.dateDiff=function(){...}//直接写在js里面
//Date对象返回两个日期对象之间的时间间隔。
//这个方法很巧妙,根据参数取对象属性
Date.prototype.dateDiff = function(interval,objDate2){//interval='y','q','m','ms','w','d','h','n','s'
var d=this, i={}, t=d.getTime(), t2=objDate2.getTime();
i['y']=objDate2.getFullYear()-d.getFullYear(); // i['y']=i.y 给i定义属性y,这种方式差点记不得了
i['q']=i['y']*4+Math.floor(objDate2.getMonth()/4)-Math.floor(d.getMonth()/4);
i['m']=i['y']*12+objDate2.getMonth()-d.getMonth();
i['ms']=objDate2.getTime()-d.getTime();
i['w']=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000));
i['d']=Math.floor(t2/86400000)-Math.floor(t/86400000);
i['h']=Math.floor(t2/3600000)-Math.floor(t/3600000);
i['n']=Math.floor(t2/60000)-Math.floor(t/60000);
i['s']=Math.floor(t2/1000)-Math.floor(t/1000);
return i[interval];
}
Date.prototype.dateDiff=function(){...}//直接写在js里面
//Date对象返回两个日期对象之间的时间间隔。
//这个方法很巧妙,根据参数取对象属性
Date.prototype.dateDiff = function(interval,objDate2){//interval='y','q','m','ms','w','d','h','n','s'
var d=this, i={}, t=d.getTime(), t2=objDate2.getTime();
i['y']=objDate2.getFullYear()-d.getFullYear(); // i['y']=i.y 给i定义属性y,这种方式差点记不得了
i['q']=i['y']*4+Math.floor(objDate2.getMonth()/4)-Math.floor(d.getMonth()/4);
i['m']=i['y']*12+objDate2.getMonth()-d.getMonth();
i['ms']=objDate2.getTime()-d.getTime();
i['w']=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000));
i['d']=Math.floor(t2/86400000)-Math.floor(t/86400000);
i['h']=Math.floor(t2/3600000)-Math.floor(t/3600000);
i['n']=Math.floor(t2/60000)-Math.floor(t/60000);
i['s']=Math.floor(t2/1000)-Math.floor(t/1000);
return i[interval];
}
js-parseInt()陷阱:
var a = parseInt("09"), b = Number("09");
很多人会认为a和b的值都是数字9,但实际上不是。//0,9
在没有指定radix或者radix为0的情况下,parseInt会按十进制进行转换。然而,这在某些情况下有点特殊:
* 如果string的值以“0x”开头,parseInt会按十六进制进行转换;
* 如果string的值以“0”开头,parseInt会按八进制进行转换。
说回开头的代码,由于"09"是以“0”开头,所以parseInt会按八进制进行转换,但是“9”不是合法的八进制值(八进制只有0-7八个数字),所以转换结果是0。
要避免这个陷进,可以强制指定radix:
代码如下:
alert(parseInt("09", 10)); // outputs '9'
var a = parseInt("09"), b = Number("09");
很多人会认为a和b的值都是数字9,但实际上不是。//0,9
在没有指定radix或者radix为0的情况下,parseInt会按十进制进行转换。然而,这在某些情况下有点特殊:
* 如果string的值以“0x”开头,parseInt会按十六进制进行转换;
* 如果string的值以“0”开头,parseInt会按八进制进行转换。
说回开头的代码,由于"09"是以“0”开头,所以parseInt会按八进制进行转换,但是“9”不是合法的八进制值(八进制只有0-7八个数字),所以转换结果是0。
要避免这个陷进,可以强制指定radix:
代码如下:
alert(parseInt("09", 10)); // outputs '9'
css".x" -> class="x"
maven笔记:
mvn配置:window -> Preferences -> Maven
1、Installations:External S:\springToolSuite\apache-maven-3.0.4 勾上,
注意:Global settings:S:\springToolSuite\apache-maven-3.0.4\conf\settings.xml
2、User Settings:E:\vitualPro\springToolSuite\apache-maven-3.0.4\.m2\settings.xml
mvn -version/-v
echo %java_home%
java -version
echo %m2_home%
groupId,artifactId(工程Id),version:定义了一个项目基本的坐标
mvn clean compile(进入工程下面,编译)
mvn clean test(自动化测试)
mvn clean package(打包,将包打到target下面)
mvn clean install(打jar包保存到本地仓库,让其他工程引用)
//mvn新建一个工程
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
//打包
mvn package
//转换成eclipse工程
mvn eclipse:eclipse
maven spring repository
Spring mvc 笔记:
1、只接受post请求:@RequestMapping(value="fnd/searchHotel.htm",method=RequestMethod.POST)
Spring mvc还是要详细学学
@Controller
@RequestMapping("/test.do")
public class Test{
@RequestMapping(params="method=show")
public String show(User user,ModelMap model){
System.out.println(“calling...”);
}
}
报找不到java -> maven更新依赖
clean
1、只接受post请求:@RequestMapping(value="fnd/searchHotel.htm",method=RequestMethod.POST)
Spring mvc还是要详细学学
@Controller
@RequestMapping("/test.do")
public class Test{
@RequestMapping(params="method=show")
public String show(User user,ModelMap model){
System.out.println(“calling...”);
}
}
报找不到java -> maven更新依赖
clean
统一格式化代码:window -> preferences -> Formatter
jquery常用方法:
.append(content) :向每个匹配的元素的内部的结尾处追加内容
.show();
.hide();
.val();
.html();//有些dom对象没有value只能取html或者text
.append(content) :向每个匹配的元素的内部的结尾处追加内容
.show();
.hide();
.val();
.html();//有些dom对象没有value只能取html或者text
dom对象转成jquery对象:
//<input type="text" id="txt" value="1111111111111">
var txt = document.getElementById("txt");//获取dom对象
var $txt = $(txt);//转换为jquery对象
alert($txt.val());
jquery对象转成dom对象:
//<input type="text" id="txt" value="1111111111111">
var $txt = $("#txt");//获取jquery对象
//转换为dom对象
var txt = $txt[0];//1
var txt = $txt.get(0);//2
var trs = $("#mytable tr");//获取mytable里面所有的tr
var tr = trs[0];//dom对象,此时为dom对象而非jquery对象,容易犯错的地方
var tr = trs.eq(0);//这才是jquery对象
jquery有length属性和size()方法
var trs = $("#mytable tr");
alert(trs.size());
alert(trs.length);
//<input type="text" id="txt" value="1111111111111">
var txt = document.getElementById("txt");//获取dom对象
var $txt = $(txt);//转换为jquery对象
alert($txt.val());
jquery对象转成dom对象:
//<input type="text" id="txt" value="1111111111111">
var $txt = $("#txt");//获取jquery对象
//转换为dom对象
var txt = $txt[0];//1
var txt = $txt.get(0);//2
var trs = $("#mytable tr");//获取mytable里面所有的tr
var tr = trs[0];//dom对象,此时为dom对象而非jquery对象,容易犯错的地方
var tr = trs.eq(0);//这才是jquery对象
jquery有length属性和size()方法
var trs = $("#mytable tr");
alert(trs.size());
alert(trs.length);
eval解析"{}"对象时必须加上一对小括号"()",eg:
var code = "{a:2}";
alert(eval(code));//-> undefined
code ="("+code+")";
alert(eval(code));//-> [object Object]
var code = "{a:2}";
alert(eval(code));//-> undefined
code ="("+code+")";
alert(eval(code));//-> [object Object]
JS中实现replaceAll的方法:
第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。 //: /\-/g,-为要被替换的字符,!为替换为的字符串
var str = "1111" + \r\n" + "22222" + "\r\n" + "33333";
str = str.replace(/\r/g,"").replace(/\n/g,""); //用空字符串代替
var mytime=new Date(yyyy,mm -1,dd,hour,minute,second);
//month:一个表示月份的数值,该值介于 0(一月) ~ 11(十二月) 之间。
var now =new Date().getTime();
var period = mytime.getTime()-now;//返回间隔毫秒数
//将t毫秒转换长几天几时几分几秒
function formatTime(t) {//毫秒数
if (t > 0) {
var totalSecond = t / 1000;
var second = Math.floor(totalSecond % 60);
var minute = Math.floor(totalSecond / 60);
var hour = Math.floor(minute / 60);
var day = Math.floor(hour / 24);
minute = minute % 60;
hour = hour % 24;
return [day, hour, minute, second];
} else {
return [0, 0, 0, 0];
}
}
第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。 //: /\-/g,-为要被替换的字符,!为替换为的字符串
var str = "1111" + \r\n" + "22222" + "\r\n" + "33333";
str = str.replace(/\r/g,"").replace(/\n/g,""); //用空字符串代替
var mytime=new Date(yyyy,mm -1,dd,hour,minute,second);
//month:一个表示月份的数值,该值介于 0(一月) ~ 11(十二月) 之间。
var now =new Date().getTime();
var period = mytime.getTime()-now;//返回间隔毫秒数
//将t毫秒转换长几天几时几分几秒
function formatTime(t) {//毫秒数
if (t > 0) {
var totalSecond = t / 1000;
var second = Math.floor(totalSecond % 60);
var minute = Math.floor(totalSecond / 60);
var hour = Math.floor(minute / 60);
var day = Math.floor(hour / 24);
minute = minute % 60;
hour = hour % 24;
return [day, hour, minute, second];
} else {
return [0, 0, 0, 0];
}
}
jquery:eq(index)=按index取元素
<p> This is just a test.</p> <p> So is this</p>
$("p").eq(1);//取第2个p
<p> This is just a test.</p> <p> So is this</p>
$("p").eq(1);//取第2个p
js:
定义一个对象:{ }
定义一个数组:[ ]
js定义一个对象,对象下面有两个数组对象:
var obj={elem:[{sequence:'1',name:'文本1'},{sequence:'2',name:'文本2'}],elem2:[]};
//obj有两个属性:elem,elem2;elem,elem2为两个数组;elem数组长度为2,elem2为空数组。
定义一个对象:{ }
定义一个数组:[ ]
js定义一个对象,对象下面有两个数组对象:
var obj={elem:[{sequence:'1',name:'文本1'},{sequence:'2',name:'文本2'}],elem2:[]};
//obj有两个属性:elem,elem2;elem,elem2为两个数组;elem数组长度为2,elem2为空数组。
jquery根据name属性查找一个元素:
使用jquery的属性查找方式.
$("input[name="+name+"]")
根据属性查找元素:
$("[title]").click()..........
即选择所有元素内 属性带有title的元素
即 <li class="aaaa" title="ttt">li-1</li>
<li title="fffff">li-2</li>
<div class="aaaa" title="ttt">li-1</div>
<div title="fffff">li-2</div>
$("div[title]").click()..........
选择所有div标签下的所有带title的元素
即
<div class="aaaa" title="ttt">li-1</div>
<div title="fffff">li-2</div>
jquery 属性选择器_姚松阳_新浪博客
JQuery遍历table的tr+td:
function 函数名()
{
var i=$('#xmmcTable tr').size(); //子元素过滤器
var j=i-1;
if(i>1)
{
var td1text=$('#xmmcTable tr').eq(j).find("td").eq(0).text();
var td2text=$('#xmmcTable tr').eq(j).find("td").eq(1).find("input ").eq(0).val();
var td3text=$('#xmmcTable tr').eq(j).find("td").eq(2).find("input ").eq(0).val();
var td4text=$('#xmmcTable tr').eq(j).find("td").eq(3).find("<select>").eq(0).val();
}
使用jquery的属性查找方式.
$("input[name="+name+"]")
根据属性查找元素:
$("[title]").click()..........
即选择所有元素内 属性带有title的元素
即 <li class="aaaa" title="ttt">li-1</li>
<li title="fffff">li-2</li>
<div class="aaaa" title="ttt">li-1</div>
<div title="fffff">li-2</div>
$("div[title]").click()..........
选择所有div标签下的所有带title的元素
即
<div class="aaaa" title="ttt">li-1</div>
<div title="fffff">li-2</div>
jquery 属性选择器_姚松阳_新浪博客
JQuery遍历table的tr+td:
function 函数名()
{
var i=$('#xmmcTable tr').size(); //子元素过滤器
var j=i-1;
if(i>1)
{
var td1text=$('#xmmcTable tr').eq(j).find("td").eq(0).text();
var td2text=$('#xmmcTable tr').eq(j).find("td").eq(1).find("input ").eq(0).val();
var td3text=$('#xmmcTable tr').eq(j).find("td").eq(2).find("input ").eq(0).val();
var td4text=$('#xmmcTable tr').eq(j).find("td").eq(3).find("<select>").eq(0).val();
}
jquery查找子元素过滤器:
var tr_1 = $("#mytable tr:first-child");//查找第一个子元素
var tr_4 = $("#mytable tr:last-child");//查找最后一个子元素
var tr = $("#mytable tr:nth-child(6)");//查找第6一子元素,从1开始
var trs = $("#mytable tr:odd");//基数135,相当于索引024...
for(var i=0;i<trs.length;i++){
alert(trs.eq(i).attr("id"));
}
$("#mytable tr:even").css("color","red");
$("#mytable tr:nth-child(3n+1)").css("color","red");//(3n+1):顺序,取第1、4、7等行
下面两句等同([]中可写dom属性:value,class。。。):
var tr = $("#t1 tr[class='x']");
var tr = $("#t1 tr.x");
var tr_1 = $("#mytable tr:first-child");//查找第一个子元素
var tr_4 = $("#mytable tr:last-child");//查找最后一个子元素
var tr = $("#mytable tr:nth-child(6)");//查找第6一子元素,从1开始
var trs = $("#mytable tr:odd");//基数135,相当于索引024...
for(var i=0;i<trs.length;i++){
alert(trs.eq(i).attr("id"));
}
$("#mytable tr:even").css("color","red");
$("#mytable tr:nth-child(3n+1)").css("color","red");//(3n+1):顺序,取第1、4、7等行
下面两句等同([]中可写dom属性:value,class。。。):
var tr = $("#t1 tr[class='x']");
var tr = $("#t1 tr.x");
遍历js对象的所有属性:
var tr = document.getElementById("tr1");
var str = "";
for(var p in tr){
if(tr[p] !=null && tr[p] != ""){
str = str + p + "=" +tr[p]+"\r\n";
}
}
alert(str);
var tr = document.getElementById("tr1");
var str = "";
for(var p in tr){
if(tr[p] !=null && tr[p] != ""){
str = str + p + "=" +tr[p]+"\r\n";
}
}
alert(str);
连接查询:
左连接左边的总显示(即使右边的为空,右边无匹配,部门无员工),右连接右边的总显示(即使左边的为空)
现有员工表(Emp)和部门表(Dept),现有需要:查出员工和其部门,
无论部门有没有员工都要显示(新部门刚成立),此时就需要使用外连接查询
右连接:
select ename , dname from emp right join dept
on emp.deptno = dept.deptno
左连接(无论是否有员工都显示部门):
select * from dept left join emp
on dept.deptid = emp.deptid;
左连接左边的总显示(即使右边的为空,右边无匹配,部门无员工),右连接右边的总显示(即使左边的为空)
现有员工表(Emp)和部门表(Dept),现有需要:查出员工和其部门,
无论部门有没有员工都要显示(新部门刚成立),此时就需要使用外连接查询
右连接:
select ename , dname from emp right join dept
on emp.deptno = dept.deptno
左连接(无论是否有员工都显示部门):
select * from dept left join emp
on dept.deptid = emp.deptid;
计算器:calc.exe
获取select 选中的 text :
$("#ddlregtype").find("option:selected").text();
获取select选中的 value:
$("#ddlregtype ").val();
获取select选中的索引:
$("#ddlregtype ").get(0).selectedindex;
设置选中option:
var selectbox = $("#bokrflag").get(0);
selectbox.selectedIndex=1(xx);
根据value设置选中option:
$("#select_id option[value='"+Value+"']").attr("selected",true);
$("#ddlregtype").find("option:selected").text();
获取select选中的 value:
$("#ddlregtype ").val();
获取select选中的索引:
$("#ddlregtype ").get(0).selectedindex;
设置选中option:
var selectbox = $("#bokrflag").get(0);
selectbox.selectedIndex=1(xx);
根据value设置选中option:
$("#select_id option[value='"+Value+"']").attr("selected",true);
tip:
快捷方式右击查找目标,打开文件所在目录
菜单及action权限分析:
菜单分类:顶级菜单、二级菜单(左边菜单)
菜单及action:
1、每个叶子菜单(即二级菜单)本身绑定有action
2、每个叶子菜单下面又有很多action和Ajax请求
可以用存储过程一次查找出所有权限
也可以不用存储过程,大部分用户(user,客户customer)的操作都是固定的一部分,没必要将所有的权限都一次查找出来
权限这东西要做成过滤器,不要再业务层进行操作,一来是公用的,二来简化action
菜单分类:顶级菜单、二级菜单(左边菜单)
菜单及action:
1、每个叶子菜单(即二级菜单)本身绑定有action
2、每个叶子菜单下面又有很多action和Ajax请求
可以用存储过程一次查找出所有权限
也可以不用存储过程,大部分用户(user,客户customer)的操作都是固定的一部分,没必要将所有的权限都一次查找出来
权限这东西要做成过滤器,不要再业务层进行操作,一来是公用的,二来简化action
在JS中有两种定义函数的方式,
1是var aaa=function(){...}
2是function aaa(){...}
var 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用。
function方式定义函数可以先调用,后声明
预编译时var的变量会初始化为:undefined,function会被解析(在脚本执行前)
原型继承与call继承的区别:
call没有把function加到原型链上去
1是var aaa=function(){...}
2是function aaa(){...}
var 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用。
function方式定义函数可以先调用,后声明
预编译时var的变量会初始化为:undefined,function会被解析(在脚本执行前)
原型继承与call继承的区别:
call没有把function加到原型链上去
var obj = obj || {};
obj = obj || {};
难不成这样的操作返回的结果是对象而不是boolean值 ?
简单的说,先执行操作符左侧的结果,然后尝试将其转换为boolean值,
如果结果为true,则返回左侧的执行结果而不是true,
如果结果为false,则执行右侧的表达式并返回结果
obj = obj || {};
难不成这样的操作返回的结果是对象而不是boolean值 ?
简单的说,先执行操作符左侧的结果,然后尝试将其转换为boolean值,
如果结果为true,则返回左侧的执行结果而不是true,
如果结果为false,则执行右侧的表达式并返回结果
javascript利用正则实现trim:
String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g,"");
}
var str = " 111111111 222222222222 ";
str = str.trim();
alert(str);
arguments[i]
jquery设置样式:
$("p").css("color");
$("p").css("color","red");
$("p").css({ "margin-left": "10px", "background-color": "blue"});
$("p").css("color");
$("p").css("color","red");
$("p").css({ "margin-left": "10px", "background-color": "blue"});
EStore(前台工程)如何引用StoreManager(后台工程)的代码:
var test1 = function fun(){}
alert(fun);
fun is not defined!
不要这样写,这样写不规范,fun没有任何意义(IE不符合规范不会报错)
alert(fun);
fun is not defined!
不要这样写,这样写不规范,fun没有任何意义(IE不符合规范不会报错)
- myNote
- myNote
- myNote
- MyNote再次更新了
- 功夫不负有心人的mynote
- mynote springMVC拦截器配置
- MyNote笔记系统(一) 简介
- MyNote笔记系统(五)天气预报篇
- 我的便笺本(MyNote) V1.0 Beta
- MyNote笔记系统(二)登陆与注册
- MyNote笔记系统(三)笔记管理篇
- MyNote笔记系统(四)日程管理篇
- 【转载】他是个残疾人 mynote V1.01发布
- Session(http://mynote.iteye.com/blog/1127469)
- UNICODE 编程入门 http://blog.csdn.net/mynote/archive/2005/02/23/298179.aspx
- 七年IT奋斗纪实及感悟 --转载于mynote
- JSP内置对象比较与分析(http://mynote.iteye.com/blog/1103102)
- hdu 4430 Yukari's Birthday(二分+枚举)
- 常用对象API(集合框架--概述,体系和共性功能)
- 时钟(每秒增长)
- 汇编中的ILT
- 深入浅出AJAX (一) 轻松入门
- myNote
- javaweb之表单输入域,请求转发以及cookie和session原理
- poj 2485 Highways (最小生成树)
- 初步接触全文检索小记
- 图文解释XCode常用快捷键的使用
- struts2.X心得1--struts2入门知识
- 打蜜蜂小游戏
- 设计模式之--命令模式
- struts2.X心得2--第一个struts2案例分析以及整合c3p0连接数据库案例分析