jq的内容过滤器
:contains(文本) 包含括号内的文本的元素集合(括号内要加引号)
:empty 空元素(不包含子元素或文本的元素)集合
:has(选择器) 包含括号中选择器选中的元素集合的元素集合
:parent 含有子元素或者文本的元素集合
1、onchange事件与onpropertychange事件的区别: onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发;
onpropertychange事件却是实时触发,即每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是该事件IE专有。
2、oninput事件与onpropertychange事件的区别: oninput事件是IE之外的大多数浏览器支持的事件,在value改变时触发,
实时的,即每增加或删除一个字符就会触发,然而通过js改变value时,却不会触发;onpropertychange事件是任何属性改变都会触发的,
而oninput却只在value改变时触发,oninput要通过addEventListener()来注册,onpropertychange注册方式跟一般事件一样。
(此处都是指在js中动态绑定事件,以实现内容与行为分离)
3、oninput与onpropertychange失效的情况: (1)oninput事件:a). 当脚本中改变value时,不会触发;b).从浏览器的自动下拉提示中
选取时,不会触发。 (2)onpropertychange事件:当input设置为disable=true后,onpropertychange不会触发。
appendTo()方法:
$("<p>测试</p>").appendTo("#test"); //在id为test元素内部末尾插入<p>测试</p>
我们有两个方法来阻止默认事件
e.preventDefault() : 非 IE 使用
e.returnValue = false :IE 使用
26、如何取消事件冒泡 浏览器默认事件
阻止事件冒泡: event.cancelBubble=true,,stop
阻止浏览器默认事件 event.event.preventDefault()
3.return false ;这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件;写上此代码,连接不会被打开,事件也不会传递到上一层的父元素;可以理解为return false就
等于同时调用了event.stopPropagation()和event.preventDefault()
1.window对象常用属性:
window.closed 返回窗口是否已被关闭。
window.status=sometext 设置窗口状态栏的文本。
window.location.href="url" 在当前页面跳转至新页面
window.location 获取当前页面的url地址
2.window对象常用方法:
alert("") 显示带有一段消息和一个确认按钮的警告框。
confirm("") 显示带有一段消息以及确认按钮和取消按钮的对话框。
window.blur() 把键盘焦点从顶层窗口移开。
window.moveTo(x,y) 把窗口的左上角移动到一个指定的坐标。
window.resizeTo(width,height) 把窗口大小调整为指定的宽度和高度。
window.scrollTo(xpos,ypos) 把内容滚动到指定的坐标。
window.open(URL,[name,features,replace]) 打开一个新的浏览器窗口或查找一个已命名的窗口
setInterval(fn(),time); 按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout(fn(),time); 在指定的毫秒数后调用函数或计算表达式。
clearTimeout(timer) 取消由 setTimeout() 方法设置的 timeout。
29、Js跳转页面的方式
Location.href=“地址”;
History.back()
History.forward()
history.go(-2);
window.navigate("跳转地址");
30、Js刷新页面的方式
1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand('Refresh')
6 window.navigate(location)
7 location.replace(location)
8 document.URL=location.href
•href:跳转
• hash 返回url中#后面的内容,包含#
• host 主机名,包括端口
• hostname 主机名
• pathname url中的路径部分
• protocol 协议 一般是http、https
• search 查询字符串
/获取常用对象:这里的每个对象都是一个完整的体系,都要掌握/
window.location 加载页面
window.history 历史记录
window.localStorage 本地存储
window.sessionStorage 本地存储
window.navigator 浏览器器软件信息
window.document 文档(document中的属性和方法,就是常说的DOM操作)
window.screen 屏幕(显示屏的信息)
这里还有一些属性不常用,我也给列了出来
/其他:很不常用/
// closed 返回窗口是否已被关闭。
// defaultStatus 设置或返回窗口状态栏中的默认文本。
// frames 返回窗口中所有命名的框架。该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架。
// length 设置或返回窗口中的框架数量。
// name 设置或返回窗口的名称。
// opener 返回对创建此窗口的窗口的引用。
// parent 返回父窗口。
// self 返回对当前窗口的引用。等价于 Window 属性。
// status 设置窗口状态栏的文本。
// top 返回最顶层的父窗口。
- 下边这几个属性是获取有关浏览器窗口位置,大小(都是只读属性,也就是说不能进行赋值操作)
//获取浏览器相对于屏幕的坐标
window.screenLeft;/window.screenX;/
window.screenTop;/window.screenY;/
//获取窗口的外部高度(包含工具条与滚动条)
window.outerHeight
window.outerWidth
//获取窗口的文档显示区的大小----获取窗口的滚动距离(内部高度)
window.innerHeight
window.innerWidth
//获取滚动条的滚动距离(此方法只有IE支持,其他浏览器在算滚动条时使用的其他方式)
window.pageXOffset;/IE/
window.pageYOffset
-- 创建数据库
create database test_sql;
-- 修改数据库名称(只有 sysadmin 和 dbcreator 固定服务器角色的成员才答能执行 sp_renamedb)
sp_renamedb 'test_sql','exam_sql';
-- 删除数据库
drop database test_sql;
-- 引用数据库
use test_sql;
-- 创建表
create table student(
sid int NOT NULL PRIMARY KEY,
sname VARCHAR(20) ,
sage INT not NULL CHECK (sage BETWEEN 1 and 100),
semail VARCHAR(50) CHECK (semail LIKE '_%@._%')UNIQUE
);
-- 删除表
DROP TABLE student;
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);
修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);
删除字段的语法:alter table tablename drop (column);
添加、修改、删除多列的话,用逗号隔开。
使用alter table 来增加、删除和修改一个列的例子。
创建表结构:
create table test1
(id varchar2(20) not null);
增加一个字段:
alter table test1
add (name varchar2(30) default ‘无名氏’ not null);
使用一个SQL语句同时添加三个字段:
alter table test1
add (name varchar2(30) default ‘无名氏’ not null,
age integer default 22 not null,
has_money number(9,2)
);
修改一个字段
alter table test1
modify (name varchar2(16) default ‘unknown’);
ALTER TABLE tb_emp1
-> CHANGE col1 col3 CHAR(30);修改字段名
ALTER TABLE tb_emp1 修改字段类型
-> MODIFY name VARCHAR(30);
另:比较正规的写法是:
-- Add/modify columns
alter table TABLE_NAME rename column FIELD_NAME to NEW_FIELD_NAME;
删除一个字段
alter table test1
drop column name;
需要注意的是如果某一列中已经存在值,如果你要修改的为比这些值还要小的列宽这样将会出现一个错误。
例如前面如果我们插入一个值
insert into test1
values (’1′,’我们很爱你’);
然后曾修改列: alter table test1
modify (name varchar2(8));
将会得到以下错误:
ERROR 位于第 2 行:
ORA-01441: 无法减小列长度, 因为一些值过大
---------------------------------------------------------------------------------------------------------------
高级用法:
重命名表
ALTER TABLE table_name RENAME TO new_table_name;
修改列的名称
语法:
ALTER TABLE table_name RENAME COLUMN supplier_name to sname;
范例:
alter table s_dept rename column age to age1;
附:创建带主键的表>>
create table student (
studentid int primary key not null,
studentname varchar(8),
age int);
1、创建表的同时创建主键约束
(1)无命名
create table student (
studentid int primary key not null,
studentname varchar(8),
age int);
(2)有命名
create table students (
studentid int ,
studentname varchar(8),
age int,
constraint yy primary key(studentid));
2、删除表中已有的主键约束
(1)无命名
可用 SELECT * from user_cons_columns;
查找表中主键名称得student表中的主键名为SYS_C002715
alter table student drop constraint SYS_C002715;
(2)有命名
alter table students drop constraint yy;
3、向表中添加主键约束
alter table student add constraint pk_student primary key(studentid
-- 增加列(列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度)
ALTER TABLE student add sphone VARCHAR(16);
-- 添加主键
ALTER TABLE student ADD PRIMARY KEY(sid);
-- 删除主键
ALTER TABLE student DROP primary key(sid);
-- 创建索引(索引允许数据库高效找到关系中那些索引数组属性上取给定值的元组,不用扫描所有元组)
create UNIQUE INDEX emailIndex on student (semail);
-- 删除索引 (索引是不可更改的,想更改必须删除重新建)
drop INDEX emailIndex on student;
-- 创建视图 (存储数据库视图关系,视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表)
CREATE VIEW studentView as SELECT sid from student;
-- 删除视图
DROP VIEW studentView;
-- 添加数据(需要注意主外键重复、check等约束)
insert into student(sid,sname,sage,semail,sphone 空必写非空随意) VALUES (3,'test',17,'3@.com','15239958942');
--更新数据
update student SET sphone ='15239958914' where sage BETWEEN 10 and 20;
-- 查找数据
select * from student;--全部查找
select * from student where sid = 2;--条件查找
select * from student where semail like '%@%';--like查找
select * from student ORDER BY sid DESC;--降序查找
select COUNT(DISTINCT sage) as sagecount from student ;--总数查找,DISTINCT age查找不同年龄,没有disinct表示找所有sage值不空的个数,*、1代表查所有
select SUM(sage) as sagesum from student;--查找年龄总和
select AVG(sage) as sageavg from student;--查找平均年龄
select MAX(sage) as sagemax from student;--查找最大
select MIN(sage) as sagemin from student;--查找最小
-- 删除数据
DELETE FROM student where sid = 2;
-- UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行
select semail from student UNION select semail from users;
-- EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
select semail from student EXCEPT select semail from users;
-- INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
select semail from student INTERSECT select semail from users;
-- 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
select student.semail from student LEFT JOIN users ON student.semail = users.semail;
-- 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
select student.semail from student RIGHT JOIN users ON student.semail = users.semail;
-- 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录
select student.semail from student FULL JOIN users ON student.semail = users.semail;
-- 一张表,一旦分组 完成后,查询后只能得到组相关的信息;分组需要包含信息:(统计信息) count,sum,max,min,avg 分组的标准);在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据;在select统计函数中的字段,不能和普通的字段放在一起。
select sage,sum(sage) as '年龄和' from student GROUP BY sage;