Jquery1里面是单引号
当前应用非常广泛的一个js类库,封装了大量方法,可以快速完成常用功能
在使用前需要先引入jquery.js文件,才可以使用这个库中的成员
$对象是jquery对象的简写方式,一般都使用$而不书写jquery,简便快捷
基本选择器
用于获取页面上的标签,返回一个jq对象
id选择器:#id
元素选择器:标签
类选择器:.class
属性
用于对标签元素的属性进行操作
获取属性值:attr(属性)
设置属性值:attr(属性,值)
如果是操作标签的值可以简写为:text(),html()
如果是操作控件的值可以简写为:val()
<script>
//操作属性
//获取属性的值:只写第一个参数,属性的名字
//alert($('#btnShow').attr('value'));
//设置属性的值:写两个参数,第一个表示属性的名字,第二个表示值
//$('#btnShow').attr('value', 'Hello World');
//prop表示html的原有属性,attr而表示扩展属性
//如:img的src操作使用prop,而href操作使用attr
//一般使用attr因为各种情况都适用
//$('img').attr('href', 'abc');
//移除属性
//$('#btnShow').removeAttr('value');
</script>
合成事件处理程序
hover(fn1,fn2):fn1表示mouseover的处理函数,fn2表示mouseout的处理函数
toggle(fn1,fn2...fnN):当元素被click后,轮流执行fn1、fn2、fnN方法
one(type,fn):表示注册的事件只响应一次,然后失效,type表示事件类型
1 <script> 2 //对于value属性的一种简写操作 3 //$('#btnShow').attr('value');=> 4 //$('#btnShow').val(''); 5 6 //为按钮绑定点击事件 7 //$('#btnShow').click(function() { 8 // alert(this.value);//this是dom对象,不能调用jquery的成员 9 //}); 10 11 //dom的事件注册:一个事件只能注册一个处理函数,不支持多播 12 //document.getElementById('btnShow').onclick = function() { 13 // alert(1); 14 //}; 15 //document.getElementById('btnShow').onclick += function() { 16 // alert(2); 17 //}; 18 19 //jquery事件注册:支持多播,一个事件可以指定多个处理函数 20 $('#btnShow').click(function() { 21 alert(1); 22 }); 23 $('#btnShow').click(function() { 24 alert(2); 25 }); 26 </script>
加载事件
$(function() {
$('#btnShow').click(function() {
alert(1);
});
合成事件
1 <script> 2 $(function () { 3 //合成指向、移开事件 4 //$('#btnShow').hover(function() {//指向 5 // this.style.color = 'red'; 6 //}, function() {//移开 7 // this.style.color = 'black'; 8 //}); 9 10 //合成点击事件,指定在n个函数间切换,点击次数为m 11 //$('#btnShow').toggle(function() {//第m%n==1次点击时执行此函数 12 // alert(1); 13 //}, function() {//第m%n==2次点击执行此函数 14 // alert(2); 15 //}, function() {//第m%n==0次点击执行此函数 16 // alert(3); 17 //}); 18 19 //合成事件:只将绑定的事件执行一次 20 //$('#btnShow').one('click', function() { 21 // alert(1); 22 //}); 23 }); 24 </script>
如何使用JSz中的类型成员
直接使用,不需要任何转换,因为jq就是js
如:array是js对象,不需要进行jq转换
如:方法parseInt()是js中的方法,在jq编码时可以直接使用
1 <script> 2 $(function () { 3 //找到按钮,并绑定点击事件 4 $('#btnShow').click(function() { 5 //找到文本框并获取值 6 var num = parseInt($('#txtNum').val());//直接调用js的成员进行操作 7 num++; 8 //将值显示到文本框 9 $('#txtNum').val(num);//传递参数时,表示将值赋给value 10 }); 11 }); 12 </script>
DOM和JQ对象的转换
为什么要转换呢?
为了使用jq中的方法,需要将dom对象转换成jq对象
jq并没有完成所有操作的封装,需要将jq对象转换成dom对象,再调用dom方法
dom->jq:$(dom对象名称)
jq->dom:jq对象.get(index)或jq对象[index]
对于dom对象,有属性、事件成员
对于jq对象,只有方法成员
文档处理
创建元素:$('标签字符串')
添加元素:
append(),追加
appendTo():追加到子元素
prepend(),prependTo():前加子元素
after(),insertAfter():后加兄弟元素
before(),insertBefore():前加兄弟元素
动态删除元素
empty():清空子元素
remove(selector):删除当前元素,无参表示删除全部,有参表示删除符合条件的元素
1 <script> 2 $(function() { 3 $('#btnShow').click(function () { 4 //对于标签对,使用text().html()进行设置或获取 5 $('#txt1').text('这是个div'); 6 }); 7 }); 8 </script>
<script> $(function() { $('#btnAppend').click(function () { //动态创建jquery对象 var zhh = $('<b>Zhh</b>'); //追加 $('#divContainer').append(zhh); }); $('#btnAppendTo').click(function () { //追加到 $('<b>拍电影</b>').appendTo($('#divContainer')); }); $('#btnEmpty').click(function () { //清空所有子元素 $('#divContainer').empty(); }); $('#btnRemove').click(function() { //$('#divContainer').remove(); $('<span style="color:red">sadkfjlsad</span>').insertBefore('#divContainer'); }); }); </script>
省市联动
each在jqurery里面有两种使用,一种是遍历,另外一种是对对象的访问
<script> //$.each(obj,fun(i,n)) //如果obj是数组,则i是索引,n是元素 //如果obj是对象或键值对,i是键,n是值 //定义省市数据,键值对集合 var datas = { "北京": ["朝阳", "海淀", "昌平", "丰台"], "山东": ["青岛", "济南", "烟台"], "山西": ["大同", "太原", "运城", "长治"], "河南": ["洛阳", "开封", "郑州", "驻马店"], "河北": ["石家庄", "张家口", "保定"] }; $(function() { //创建省的select var select = $('<select id="selectProvince"></select>'); //最后写change事件:为省的select绑定change事件 select.change(function () { //找到市信息 var citys = datas[$(this).val()]; //删除市的原有option $('#selectCity').empty(); //添加option $.each(citys, function(index,item) { $('<option>' + item + '</option>').appendTo('#selectCity'); }); }); //追加到body中 select.appendTo('body'); //遍历集合 $.each(datas, function (key, value) { //根据数据创建option并追加到select上 $('<option value="' + key + '">' + key + '</option>').appendTo(select); }); //创建市的select var selectCity = $('<select id="selectCity"></select>').appendTo('body'); //获取选中的省信息 var pro = $('#selectProvince').val(); //将省名称作为键到集合中获取值 var citys = datas[pro]; //遍历市的数组 $.each(citys, function(index, item) { $('<option>' + item + '</option>').appendTo(selectCity); }); }); </script>
层次选择器
符号一:空格,表示取子元素,无论是几层的子元素,都会被选择到
符号二:大于号>,表示直接子元素,不包含后代子元素
符号三:加号+,表示之后紧临的一个同级元素
符号三:波浪号~,表示之后的所有同级元素
next(),prev(),nextAll(),prevAll(),siblings(),parent(),children()
1 <script> 2 $(function () { 3 //空格表示查找所有子级 4 $('#d1 div'); 5 }); 6 </script>
操作样式和类
样式操作:css(),按照键值对的格式对样式进行设置
如果只设置一个样式,则可直接赋值,如:css('color','red');
如果设置多个样式,则使用css({键1:值1,键2:值2})的格式
操作后生成的代码,都是对标签的style属性进行设置
1 <script> 2 $(function () { 3 //设置样式 4 //$('#btnShow').css('background-color', 'red'); 5 //设置多个样式 6 $('#btnShow').css({ 7 'color': 'white', 8 'background-color': 'blue', 9 'font-size': '20px' 10 }); 11 }); 12 </script>
1 <script> 2 $(function() { 3 $('#btnLight').click(function () { 4 if (this.value == '关灯') { 5 $('body').css('background-color', 'black'); 6 $(this).val('开灯'); 7 } else { 8 $('body').css('background-color', 'white'); 9 $(this).val('关灯'); 10 } 11 }); 12 }); 13 </script>
1 <script> 2 $(function() { 3 $('#btnChange').click(function () { 4 //链式编号:只查找一次,支持逐个使用方法 5 $('p').text('都是P').css('color','yellow'); 6 }); 7 }); 8 </script>
1 <script> 2 $(function() { 3 $('li').hover(function() {//指向的到焦点 4 $(this).css({ 5 'color': 'red', 6 'cursor':'pointer'//光标 7 }); 8 }, function () {//移开 9 $(this).css('color', 'black'); 10 }).click(function() {//链式编程,编写点击事件 11 $(this).appendTo('#ul2'); 12 }); 13 }); 14 </script>
类操作:addClass,hasClass,removeClass,toggleClass
也可以使用属性方法进行操作:attr('class','className');
过滤选择器
用于对选择结果执行进一步过滤
:first、:last、:eq()、:gt()、:lt()、:not(选择器)、:even偶数、:odd奇数
说明1:索引下标从0开始
说明2:以下标判断奇偶,下标从0开始
标题的快速获取
普通方法:$('h1,h2,h3...h6')
快捷方法:$(':header')
<script> $(function() { $('div:first'); }); </script>
表格操作知识点1.遍历 空格,奇偶,指向和移开 样式
1 <script> 2 var list = [ 3 { id: '1', country: '中国', capital: '北京' }, 4 { id: '2', country: '美国', capital: '华盛顿' }, 5 { id: '3', country: '日本', capital: '东京' }, 6 { id: '4', country: '韩国', capital: '首尔' } 7 ]; 8 9 $(function () { 10 //遍历集合,创建tr与td 11 $.each(list, function(index, item) { 12 $('<tr><td>' + item.id + '</td><td>' + item.country + '</td><td>' + item.capital + '</td></tr>').appendTo('#list'); 13 }); 14 //为奇偶行指定不同背景色 15 $('#list tr:even').css('background-color', 'red'); 16 $('#list tr:odd').css('background-color', 'green'); 17 //指定移上、移开效果 18 $('#list tr').hover(function() {//移上 19 bgColor = $(this).css('background-color'); 20 $(this).css('background-color', 'blue'); 21 }, function() {//移开 22 $(this).css('background-color', bgColor); 23 }); 24 //前三名变粗 25 $('#list tr:lt(3)').css('font-weight', 'bold'); 26 }); 27 </script>
指向移开
1 <script> 2 $(function () { 3 $('li').hover(function () {//移上 4 $(this).css('background-color', 'red') 5 .prevAll()//这个方法找到当前节点的所有节点,破坏了当前的链 6 .css('background-color', 'yellow') 7 .end()//恢复最近的一次链的破坏 8 .nextAll() 9 .css('background-color', 'blue') 10 ; 11 }, function () {//移开 12 $(this).css('background-color', 'white') 13 .siblings().css('background-color', 'white');//获取左右的兄弟节点 14 }); 15 }); 16 </script>