jquqry总结一
电脑系统:windows10 专业版
在开发的过程中,咱们依据需要会常常应用到 jquery,当初我简略的做了以下总结,心愿对大家有所帮忙。
jQuery 是一个基于 JavaScript 的面向对象封装.
在 jQuery中 通过选择器获取到的是一个对象, 该对象中存在一个数组属性, 该数组中存储着所有通过抉择获取到的元素.
jQuery 1.x: 兼容 IE6, 7, 8
jQuery 2.x: 不兼容 IE6, 7, 8
jQuery 3.x: 不兼容 IE6, 7, 8
1, 元素绑定事件
on(参数一, 参数二): 绑定事件
参数一: 要绑定的事件类型
参数二: 要绑定的事件(能够是匿名函数, 也能够是函数名)
off(参数一, 参数二): 解除绑定
参数一: 事件类型
参数二: 事件名
注: 如果省略参数二不写, 将勾销所有参数一类型事件的绑定; 如果通过参数二指定了要解除绑定的事件, 则只解除对应的一个事件.
2, DOM 操作
创立标签:
$('<div>')
创立DOM
A.apppendTo(B):将A元素增加到B元素里
A.append(B): 将 B元素 增加到 A元素外部的前面
A.prepend(B): 将 B元素 增加到 A元素外部的后面
A.after(B): 将 B元素 增加到 A元素内部的前面
A.after(B): 将 B元素 增加到 A元素内部的后面
A.replaceWith(B): 用 B元素替换 A元素
B.replaceAll(Sel): 用 B元素替换所有通过 Sel 选择器匹配到的元素
A.empty(): 革除 A元素中的所有内容
A.remove(Sel): 革除 满足 Sel选择器 的A元素
获取指定标签的子级标签和父级标签
parent(): 获取指定元素的间接父级标签
parents(): 获取指定元素的所有父级标签
children(): 获取指定元素的所有子级标签
find(Sel): 获取指定元素中满足 Sel选择器的 子级标签
3, 元素款式操作
形式一: 一次性设置多个款式
$(".out p").css({ background: "red", fontSize: '30px' });
形式二: 一次只设置一个款式
$(".out p").css('textAlign', 'center');
4, 操作元素属性
// 设置的单个属性 $('div').attr("id", "one"); //设置多个属性 $('img').attr({ src: "./img/timg.jpeg", width: '300' }); // 获取: 也是获取的第一个匹配胜利的元素的属性值 console.log($('div').attr("id")); // 删除属性 $("img").removeAttr("width"); 属性值能够是一个函数, 函数携带两个参数 参数一(i): 匹配到的元素在数组中的下标 参数二(v): 以后正在操作的这个元素原来的属性值 $('img').attr('width', function(i, v) { return (i + 1) \* 200; }); // 200, 400, 600 // 400, 800, 1200 // 练习: 设置img的width为之前的二倍 $('img').attr('width', function(i, v) { return v * 2; });
操作元素属性办法二: prop()
prop()办法 的应用形式简直与 attr()办法 雷同.
区别: prop() 往往用于操作元素的固有属性, attr() 往往用于操作自定义属性
当属性值为 布尔类型 时, 应用 prop() 办法操作该属性
5, 操作元素的内容
// html(): 成果同 innerHTML $('p').html("<strong>你好, 晚饭还早!</strong>"); // text(): 成果同 innerText $('p').text("你好, 晚饭还早!"); // 一, html() // 获取: 获取的是第一个匹配胜利的元素中的内容 console.log($('p').html()); // 获取: 获取的是所有匹配胜利的元素中的内容 console.log($('p').text()); // 三, val() // 设置 $("input").val("姓名"); $("input").val(function(i, v) { var arr = ["张三", "男", 18] return arr[i]; }); // 获取: 获取的是第一个匹配胜利的元素中的内容 console.log($("input").val());
6, 动画
animate(参数一, 参数二, 参数三, 参数四)
参数一: 须要做动画的属性(类型为对象)
参数二: 动画的继续时长, 单位: 毫秒
参数三: 速度变动曲线, jQuery默认提供 linear 和 swing(须要插件反对), 个别省略该参数
参数四: 动画执行结束之后的回调函数
$('.out').animate({ height: '100px', fontSize: '50px' }, 3000, function() { alert("动画执行实现"); });
7,操作元素类名
// 1, 增加类名 为指定的标签增加 class值 $('p').addClass("one"); // 2, 删除类名 $('p').removeClass('first'); $('p').removeClass(function(i, v) { return 'a' + i; }); // 3, 非凡的办法 toggleClass(参数一, 参数二) 参数一: 对应的class值 参数二: 布尔值, 增加或者删除. true 增加; false 删除 当省略参数二时: 如果元素原来存在对应的class值, 则删除; 如果不存在, 则增加. $('p').on('click', function() { $(this).toggleClass('active', true); });
动画
一、显示/暗藏
暗藏动画
A.hide()
设置动画的过程:slow, normal, fast, 毫秒数
显示动画
A.show()
设置动画的过程:slow, normal, fast, 毫秒数
显示/暗藏
A.toggle()
设置动画的过程:slow, normal, fast, 毫秒数
二、淡入/淡出
淡出
A.fadeOut()
设置动画的过程:slow, normal, fast, 毫秒数
淡出
A.fadwIn()
设置动画的过程:slow, normal, fast, 毫秒数
淡入/淡出
A.fadeToggle()
设置动画的过程:slow, normal, fast, 毫秒数
非凡的
A.fadwTo()
必须有一个透明度的参数
设置动画的过程:slow, normal, fast, 毫秒数
三、上滑/下滑
上滑
A.slideUp()
设置动画的过程:slow, normal, fast, 毫秒数
下滑
A.slideDown()
设置动画的过程:slow, normal, fast, 毫秒数
A.slideToggle()
设置动画的过程:slow, normal, fast, 毫秒数
四、自定义动画
同时批改多个值
$('#custom1').on('click', function() { $('#aaa').animate({ width: 200, height: '200', fontSize: '30px' }, 1000, function() { alert("动画执行结束"); }); });
在以后属性值的根底上减少/缩小
$('#custom2').on('click', function() { $('#aaa').animate({ width: '+=200', height: '-=100' }, 'slow', function() { alert("动画执行结束"); }); });
队列动画
$('#custom3').on('click', function() { $('#aaa').animate({ width: '200', }, 3000); $('#aaa').animate({ height: '200', }, 3000); $('#aaa').animate({ width: '100', }, 3000); $('#aaa').animate({ height: '100', }, 3000); });
链式操作
当对同一个元素做多项操作时, 能够连在一起写.
$('img') .prop('src', './img/timg.jpeg') .css({ border: '2px solid gold', width: '300px' }) .slideUp(1000) .slideDown(1000);
事件
一,加载事件
形式一
$('document').ready(function(){})
形式二
$(function(){})
js 中的加载与 jQuery 的区别
前者等页面元素和内部文件加载结束后再触发
后者是页面元素加载结束后触发
鼠标事件
click
dblclick
mouseout()
mouseover()
mouseenter()
mouseleave()
键盘事件
keypress()
keyup()
keydown()
表单事件
// focusin(): 当元素取得焦点前,触发 focusin 事件。
// focusin事件跟focus事件区别在于,他能够在父元素上检测子元素获取焦点的状况。
focusin()
// focusout(): 当元素失去焦点前,触发 focusout 事件。
// focusout事件跟blur事件区别在于,他能够在父元素上检测子元素失去焦点的状况。
focusout()
// select(): 当 text类型的 input 或者 文本域中的内容被选中时触发
select()
// resize: 只能给 window
$(window).resize(function() { console.log("小米粥!!!"); });
jQuery没有封装滚轮事件和鼠标右击事件
jQuery 封装的滚动事件(留神, scroll()并不是 鼠标滚轮事件, 而是在能滚动元素滚动时触发的事件)
$('.fatDiv').scroll(function() { console.log("+++++++"); });
JS原生鼠标滚轮事件
var fatDiv = document.getElementsByClassName("fatDiv")[0]; fatDiv.onmousewheel = function() { console.log("======="); }
事件绑定
on能够绑定多个事件
off能够勾销多个绑定事件
bind() 绑定事件
unbind() 勾销绑定事件
合成事件
hover(事件一, 事件二): 鼠标移入元素时触发事件一, 鼠标移出元素时触发事件二
$('.resizeDiv').hover(fun1, fun2); function fun1() { console.log('羊肉烩面!'); } function fun2() { console.log('炝锅烩面!'); }
toggle(fun1, fun2, ..., funN): 1.9版本之前, 当点击元素时会顺次触发 fun1, fun2, ..., funN
一次性事件
$('#once').one('click', function() { alert("爱你到天荒地老..."); });
DOM
增加元素
A.append(B) 将B元素增加到A元素外部的前面
A.prepend(B) 将B元素增加到A元素外部的后面
A.after(B): 将B元素增加到
A.before(B)
A.replaceWith(B)
A.replaceAll(Sel)
A.empty():革除A元素中所有的内容
A.remove(Sel):革除满足Sel选择器的A元素
增加
A.appendTo(B): 把 A 元素增加到 B 元素外部的前面
插入
A.insertBefore(B):将A元素增加到B元素内部的后面
A.insertAfter(B):将A元素增加到B元素内部的前面
删除元素
detach() 办法可能移除元素,然而不会移除元素身上的事件
remove() 办法,既能移除元素,也能移除元素自身的事件
// A.detach(): 满足这个选择器的元素被删除
$('#btn').on('click',function(){ alert })
克隆
clone(是否拷贝事件),默认值 false 代表只克隆元素,不克隆元素身上的事件
true会克隆元素身上的事件
包裹元素的办法
A.wrap(B):用 B 标签包裹每一个 A 元素
A.wrapAll(B):用 B 标签包裹所有的 A 元素(谨慎,A元素不挨着会扭转布局)
A.wrapInner(B): 用 B 标签包裹每一个 A 元素中的内容
遍历节点
each()
函数做参数
i 是下标
e 是遍历的元素
siblings() : 获取以后元素之外的同级元素
几个尺寸值
高度(同宽度)
// height() = height
console.log($('.one').height());
// innerHeight() = height() + 高低 padding
console.log($('.one').innerHeight());
// outerHeight() = innerHeight() + 高低 border
console.log($('.one').outerHeight());
// outerHeight(true) = outerHeight() + 高低 margin
console.log($('.one').outerHeight(true));
元素边框左上角到以后窗口的间隔
// 获取
console.log($('.one').offset());
// 设置
$('.one').offset({ top: 500, left: 300 });
position(): 元素 margin左上角 到离它最近的已定位父元素 边框左上角内边缘 的间隔
// scrollLeft(): 程度滚动条的地位(页面左侧卷进去的间隔)
console.log($(':root').scrollLeft());
// scrollTop(): 垂直滚动条的地位(页面顶部卷进去的间隔)
console.log($(':root').scrollTop());
// 设置
$(document).click(function() { $(':root').scrollTop(99); });
jQuery的AJAX申请
ajax 申请有两种形式
形式一
$.ajax({ })
形式二
$.ajax(url,{ })
get 申请
$.get('url',{})
post 申请
$.post('url',{})
解析 json 数据
$.post('url',{ },function(data){ // 解析json数据 var doc=JSON.parse(data) })
解析 xml 数据: 间接从data中查找
$(data).find('student').each(function(i,v){ var trM=$('').appendTo('table'); $(v).children().each(function(i,v){ $('').text($(v).text()).appendTo(trM); }) })
//本期对于jquery的总结到了这里就完结啦!是不是很简略!让咱们一起走向巅峰!