框架库: JavaScript框架库:就是一个普通的js文件,封装了很多的函数,封装了很多兼容的代码; jQuery是JavaScript框架库中的一种; jQuery的好处:写的少,做的多,链式编程,隐式迭代等…; jQuery可以解决js兼容的问题;
顶级对象: jQuery,$; 点出来的是jQuery中方法;
DOM对象和jQuery对象(伪数组)可以互转: * DOM对象转---->jQuery对象: * $(DOM的对象)----->jQuery对象 * jQuery对象---->DOM对象: * 1. * KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲btn")[0]---->DO…("#btn").get(0)—DOM对象
注意:jQuery中的this 要写成$(this);
//.val()方法—>获取按钮的value属性的值 //.val(“内容”);是设置按钮的value属性的值
$的四种用途: 1:入口函数; 2:把js原生对象转换为jQuery对象; 3:传入一个选择器字符串,获取页面的jQuery对象; 4:传入一个html的字符串,获取jQuery对象;
$(function () {} 是在HTML标签元素加载完后,就立即执行的,不等css的加载;(jQuery的入口函数);
选择器: jQuery获取元素的方式:通过各种选择器来获取元素 * 1.根据id来获取—>id选择器 ---->$("#id的值");一个
* 2.根据标签的名字来获取---标签选择器--->$("标签的名字");多个 * 3.根据类样式的名字获取--->类选择器--->$(" . 类样式的名字");多个 * 4.标签加类选择器 $("标签.类样式的名字 ");点前后不能加空格; * 5.多条件选择器 $(“标签的名字,标签的名字,标签的名字,.......”); * 6.层次选择器 //获取的是div中所有的p标签元素 //$("#dv p"). //获取的是div中直接的子元素 //$("#dv>p"). //获取的是div后面的第一个p标签元素 //$("#dv+p"). //获取的是div后面所有直接的兄弟元素p标签元素 //$("#dv~p").常见的方法:
.text()方法,设置标签中间显示的文本内容,类似于innerText: 如果小括号中写内容,就是设置文字内容; 小括号什么也不写,表示的是获取这个元素中的文字内容; .html()方法,设置标签中间显示其他标签及内容,类似于innerHTML: 小括号中可以直接写标签的字符串内容,就是设置div中的元素内容 小括号中什么也没有,表示的时候获取div中的元素内容 .val()方法.设置input标签中value的值,类似于value: 小括号中写内容就是设置元素的value属性; 小括号中什么也不写,获取元素的value属性的值; .css()方法,.设置元素的样式,类似于style: 1:该方法如果只是设置一个样式的属性和值,那么这个方法写两个参数,第一个参数是属性,第二个参数是值;中间用逗号隔开;css("backgroundColor","skyblue"); 2:可以直接写键值对的方式: $("#dv").css({"width":"300px","height":"200px","backgroundColor":"yellow"}); 3:css("backgroundColor");一个参数的时候是获取属性的值;筛选选择器: :even 索引偶数 ;从0开始,用户看到的是奇数行; :odd 索引奇数 ;从0开始,用户看到的是偶数行; :selected; 选中的;
索引选择器: 获取ul中的索引为4的li标签元素: $("#uu>li:eq(4)"). (“+index+”); 获取ul中的索引大于4的所有的li标签元素: $("#uu>li:gt(4)"). 获取ul中的索引小于4的所有的li标签元素: $("#uu>li:lt(4)"). .children();获取直接子元素;
.show():展示;里面可以放数字,运动毫秒值;
.hide();隐藏;里面可以放数字,运动毫秒值;
.index();获取当前元素的索引;(“+index+”);变量转换
.siblings();获取其他兄弟元素;
opacity:透明度;
.find();针对当前的元素找里面一些其他的元素(直接找到);
操作类样式: 添加: .addClass(“cls”);在addClass方法中类样式的名字前面没有点; 多个类样式的名字中间用空格隔开;
移除: .removeClass(“cls”),移除一个元素的类样式; .removeClass(),为空移除所有添加的样式; 检测元素是否应用了类样式: .hasClass();有返回值:true,false; 切换类样式:.toggleClass(); $(function () { $("#btn").click(function () { $("body").toggleClass("cls");//切换类样式 }); }链式编程(返回值必须是当前的对象): 对象.方法().方法().方法()…;
获取兄弟元素的方法: .next();获取的是当前元素的下一个兄弟元素;
.nextAll();获取的是当前元素的后面的所有的兄弟元素; .prev();获取的是当前元素的前一个兄弟元素; .prevAll();获取的是当前元素的前面的所有的兄弟元素; .siblings();获取的是当前元素的所有的兄弟元素(自己除外);断链:对象调用方法,返回的不是当前的对象,再调用方法,调用不了; 解决断链—>恢复到断链之前的一个效果–修复断链; .end():恢复到断链之前的效果;
.last():获取最后一个标签;也可以这样用$(“div>img:last”); .first():获取第一个标签; .remove();移除当前调用这个方法的元素—自杀;
动画: .hide()方法中可以写参数:参数类型:1.数字类型,2字符串类型: 1:数字类型:1000表示的是毫秒 —1秒; 2:字符串类型: “slow” “normal” “fast”; 3:可以写回调函数;.hide(1000,function(){});这个函数方法是在所有动画完成之后执行的;
.show()方法中可以写参数:参数类型:1.数字类型,2字符串类型: 1:数字类型:1000表示的是毫秒 ---1秒; 2:字符串类型: "slow" "normal" "fast"; 3:可以写回调函数;.show(1000,function(){});这个函数方法是在所有动画完成之后执行的; 递归:arguments.callee相当于递归; .slideUp()滑入 .slideDown()滑出 .slideToggle()切换 方法中都可以写参数: 参数:可以写数字类型 1000毫秒---1秒; 参数:字符串: slow normal fast; .fadeIn()淡入 .fadeOut()淡出 .fadeToggle()切换 .fadeTo()透明度变化;里面两个参数,第一个是毫秒值,第二个是透明度; animate方法:(目标css样式,时间,回调函数); 参数: * 1.是键值对---对象 * 2.时间---1000毫秒---1秒 * 3.匿名函数---回调函数 stop():停止当前的动画;动态的创建元素: 1. $(“标签的代码”); $(“百度”); 2. 对象.html(“标签的代码”); 直接书写就添加; $("#dv").html(“
这是一个p标签
”);添加元素: 把元素添加到div中,追加到最后(剪切效果): $("#dv").append(Obj); 把元素添加到最前面: $("#dv").prepend(Obj); 在当前元素的后面添加一个兄弟元素: $("#dv").after(Obj); 在当前元素的前面添加一个兄弟元素: KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲dv").before(Obj…("#dv"));
清除元素: //清空元素中的内容:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲dv").html(""); …("#dv").empty(); //移除元素自身—自杀:$("#dv").remove();
克隆元素:$("#").clone();复制了一个元素;
设置和和获取表单元素value: 获取表单的值 $().val();空为获取; 设置表单元素: $().val(“内容”); 下拉列表: 获取: $().val( );返回的value的值,如果标签里没有value值,则返回的是option包含的文本; 设置: $().val( );根据optionn的value属性的值,选中某个option;如果没有value值,括号里直接放option包含的文本;
自定义属性: attr可以获取并设置标签的属性和值;用来操作标签属性和值的; attr();可以写两个参数: 属性, 属性值;Obj.attr(“href”,“http://www.itcast.cn”); attr();只写了一个参数,获取该元素的这个属性的值;
移除自定义属性:removeAttr(“”); 原生属性: prop不能获取并设置标签的属性和值; 复选框:prop()可以真正的获取元素是否选中的状态;选中返回true,未选中返回false; .prop(“checked”,false);让复选框不选,.prop(“checked”,true);让复选框选中; .prop(“checked”);获取当前复选框的选中状态;
:checkbox :得到所有的复选框; :checked:得到所有选中状态;
设置和获取元素的宽和高: 通过元素的css()方法可以获取元素的宽和高,但是都是字符串类型; 通过jQuery方法设置是数值类型: $("#dv").width();获取宽的属性值; $("#dv").height();获取高的属性值; 设置:参数可以是数字也可以是字符串; $("#dv").width(width); $("#dv").height(height);
位置操作: 获取left和top的值—>都是数字类型 //console.log(KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲dv").offset().l…("#dv").offset().top); 设置:$("#dv").offset({“left”:200,“top”:200});
滚动距离: 获取:.scrollTop();.scrollLeft(); 设置:.scrollTop(xx) ;.scrollLeft(xx);注册事件: bind()方法可以为元素同时绑定多个事件; .bind({“mouseout”:function(){},“click”:functopn(){}?;
delegate:可以父级元素里的子元素绑定事件(为当前不存在的子元素添加事件); * 参数:3个 * 1.要绑定事件的元素---p; * 2.要绑定的事件的名字---click; * 3.绑定事件的处理函数---匿名函数; $("#dv").delegate("p","click",function () {}); on:两个参数:1事件的名字,2事件处理函数; $("#btn").on("click",function () {}); 三个参数: 1,事件的名字, 2.要绑定事件的元素--p,3事件处理函数; on是父级元素调用,目的:为子级元素去绑定事件; 如果元素是动态添加的,那么非常推荐用on的方式为动态添加的元素绑定事件; $("#dv").on("click","p",function () {});解绑事件: off: off()参数:要解绑的事件的名字; $("#btn1").off(“click”);
unbind: $("#btn1").unbind("click"); undelegate: $("#dv").undelegate("p","click");//解绑; $("#dv").off("click","**");下面的代码是把子级元素的点击事件解绑了,父级元素的点击事件还存在; $("#dv").off(); 移除父级元素和子级元素的所有的事件; 如果说父级元素和子级元素都是通过正常的方式绑定事件,如果通过off解绑的时候,父级元素的事件解绑了,子级元素的事件没有解绑; 如果子级元素是通过父级元素调用delegate的方式绑定的事件,父级元素使用off方式解绑事件,这个时候父级元素和子级元素的相同的事件都会被解绑;事件触发: 1:$("#btn1").click();
2: $("#btn1").trigger("click"); 3:$("#btn1").triggerHandler("click"); 不触发内置属性;事件对象属性: event.delegateTarget 谁代替元素绑定的事件; event.currentTarget 真正是谁绑定的事件;执行事件处理函数的那个对象; event.target 触发的事件的对象;
e.keyCode;//键盘按下后的键对应的键值;
事件冒泡: 元素中有元素,这些元素都有相同的事件,一旦最里面的元素的事件触发了,外面的所有的元素的相同的事件都会被触发;
取消事件冒泡:return false;还可以取消超链接的默认的点击事件;
each方法: 不同的元素不同的设置方式;也可以遍历数组;
jQuery对象实际就是个伪数组,其中存的元素就是js对象;
释放控制权:.noConflict();
