jQuery 常用总结 入口函数: 我们先看一下原生 js 的入口函数:
1 2 3 4 window .onload = () => { console .log ("onload" ); };
jq 的入口函数后 4 种:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 jQuery (document ).ready (function ( ) { console .log ("jQuery_ready" ); }); jQuery (function ( ) { console .log ("jQuery" ); }); $(document ).ready (function ( ) { console .log ("$_ready" ); }); $(function ( ) { console .log ("$" ); });
解决冲突($符号的使用): 释放’$‘的使用权和自定义访问符:
jQuery.noConflict();
表示释放$符的使用权,之后不能再使用$符调用函数或方法(可用 jQuery 代替)。注意此句需在 jquery 使用之前使用才有效。
自定义
1 2 3 4 5 6 var jq = jQuery.noConflict ();jq (() => { console .log ("jq" ); });
核心函数 $()
: 它能接受 3 中参数:
传入函数,表示它是一个入口函数
字符串
可像 css 选择器一样选择元素。
也可是一个标签字符串,会自动转为 jquery 对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $(() => { let div = $("#main div" ); console .log (div[0 ]); div = $("div > ul" ); div = $("div + li" ); div = $("div ~ li" ); let li = $("<li>5</li>" ); $("ul" ).append (li); });
3.接受一个 DOM 变量(如原生 js 获取的元素节点)
1 2 3 let div = document .getElementsByTagName ("div" )[0 ];console .log ($(div));
常用方法:
数组方法: 首先要知道 jq 一般获取到的元素节点对象都是伪数组(有 0 到 length-1 的属性,和 length 属性)
each(与原生 each 类似):可遍历数组,也可遍历伪数组
1 2 3 4 5 let arr = { 0 : "a" , 1 : "b" , 2 : "c" , length : 3 };$.each (arr, (index, value ) => { console .log (index + "--" + value); });
map(与原生 map 类似):也可遍历伪数组
1 2 3 4 5 6 7 8 let a = $.map (arr, (value, index ) => { console .log (index + "--" + value); if (value > "a" ) { return true ; } return false ; }); console .log (a);
$.isWindow(window)
:是否是 js 的 window 对象
$.isArray(arr)
:是否是一个数组(伪数组不算)
$.isFunction(()=>{})
:是否是一个函数
$.holdReady(true||false);
:jq 入口函数默认在 DOM 加载完成时执行,我们可以通过 holdReady
控制它的执行,true 关闭(确认关闭),false 执行(取消关闭)。
元素选择器: 1 2 3 4 5 6 7 8 9 10 let empty = $("div:empty" );let parent = $("div:parent" );let contains = $("div:contains('1')" );let has = $("div:has('li')" );let sum = $("div,span,img" );
元素筛选与遍历: 通常在元素选择器之后使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $("#app" ).parent (); $("#app" ).parents (); $("#app" ).children (); $("#app" ).find ('p' ); $("#app" ).siblings (); $("#app" ).prev (); $("#app" ).prevAll (); $("#app" ).next (); $("#app" ).nextAll (); $("#app" ).first (); $("#app" ).last (); $("#app" ).eq (index); $("#app" ).filter (".middle" ); $("#app" ).not (); $("#app" ).add ("p" ); $(selector).each (function (index,element ));
对标签属性的操作: 有两个方法 attr
和 prop
它们类似也有不同。
1 2 3 4 5 6 console .log ($("input" ).attr ("value" ));$("input" ).attr ("value" , "text" ); $("input" ).removeAttr ("value" );
prop
的使用与 attr
相同,官方推荐当属性值为 true 和 false 时使用 prop
方法。其它使用 attr
。
标签的 class 属性:
$("div").addClass("class");
添加 class(多个 class 用空格隔开)。
$("div").removeClass("class");
删除 class
$("div").toggleClass("class");
切换 class,存在就删除,不存在则添加。
标签内容:
1 2 console .log ($("div" ).html ()); $("div" ).html ("<p>value</p>" );
1 2 console .log ($("div" ).text ()); $("div" ).text ("<p>value</p>" );
1 2 console .log ($("#input" ).val ()); $("#input" ).val ("hello" );
css 设置属性值: 1 2 3 4 5 6 7 8 9 10 console .log ($("div" ).css ("background" ));$("div" ).css ("background" , "red" ).css ("width" , "300px" ); $("div" ).css ({ background : "blue" , width : "200px" , height : "200px" , });
元素创建添加与删除: 1 2 3 4 5 6 7 8 9 10 11 $("#container" ).prepend ("<div>子级最前<div/>" ); $("#container" ).append ("<div>子级最后<div/>" ); $("#container" ).before ("<div>同级前<div/>" ); $("#container" ).after ("<div>同级后<div/>" ); $("#container" ).empty (); $("#container" ).remove ();
元素事件: 1.鼠标事件 click
:单击事件dblclick
:双击事件mouseenter
:当鼠标指针进入所选元素时触发mouseleave
:当鼠标离开所选元素时触发mouseover
:当鼠标在所选元素上方悬停时触发
2.键盘事件 keydown
:当按下键盘按键时会触发keyup
:当按键被释放时会触发keypress
:当按下并抬起同一个按键会触发
3.表单事件 submit
:提交表单时会触发change
:当表单元素的值发生改变时会触发focus
:当表单元素获得焦点时触发blur
:当表单元素失去焦点时会触发
4.文件事件 ready
:当DOM加载完成以后触发resize
:当浏览器窗口大小改变时触发scroll
:当用户在指定的元素中滚动滚轮条时触发
5. 事件绑定
直接绑定事件:使用 元素.事件名称(函数)
如 $("#app").click(function(event){});
。
on 绑定事件: 元素.on(‘事件名称,...’,函数)
on方法可以一次绑定多个事件,事件名称之间使用逗号隔开即可。
off 删除事件: 元素.off("事件名称")
关闭元素的某个事件。
动画处理: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $("#app" ).hide () $("#app" ).show () $("#app" ).toggle () $("#app" ).fadeIn () $("#app" ).fadeOut () $("#app" ).fadeToggle () $("#app" ).slideUp () $("#app" ).slideDown () $("#app" ).slideToggle () $("#app" ).animate ({width :"200px" ,height :"200px" },2000 ) .animate ({width :"-=200px" ,height :"+=200px" },2000 ) .animate ({width :"100px" ,height :"200px" },2000 ); $("#app" ).stop ();
ajax(jQuery): 获取表单数据: 1 2 3 4 5 6 7 8 9 $('#form-box' ).serialize (); $('#form-box' ).serializeArray (); $("#form-box" ).submit (); $("form" ).submit (function (e ) { e.preventDefault (); });
ajax发送请求: 1 2 3 4 5 6 7 8 9 $.ajax ({ url : "/greet" , data : {name : 'jenny' }, type : "GET" , dataType : "json" , success : function (data ) { } });
post请求: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $.post ({ url :"${pageContext.request.contextPath}/allBook" , data :{"mgs" :$("#mgs" ).val ()}, success :function (data ){ console .log (data); }, error :function ( ){ console .log ("error" ); } });