一 jQuery是什么?
[1] jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。
[2] jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!
[3] 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器
[4] jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
[5] jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
二 什么是jQuery对象?
jQuery 对象就是通过jQuery包装DOM对象后产生的对象。jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#test”).html();
$("#test").html()
意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
这段代码等同于用DOM实现代码: document.getElementById(" test ").innerHTML;
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错
约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$.
var $variable = jQuery 对象
var variable = DOM 对象
$variable[0]:jquery对象转为dom对象 $("#msg").html(); $("#msg")[0].innerHTML
jquery的基础语法:$(selector).action()
参考:http://jquery.cuishifeng.cn/
三 寻找元素(选择器和筛选器)
3.1 选择器
3.1.1 基本选择器
1
|
$( "*" ) $( "#id" ) $( ".class" ) $( "element" ) $( ".class,p,div" ) |
3.1.2 层级选择器
1
|
$( ".outer div" ) $( ".outer>div" ) $( ".outer+div" ) $( ".outer~div" ) |
3.1.3 基本筛选器
1
|
$( "li:first" ) $( "li:eq(2)" ) $( "li:even" ) $( "li:gt(1)" ) |
3.1.4 属性选择器
1
|
$( '[id="div1"]' ) $( '["alex="sb"][id]' ) |
3.1.5 表单选择器
1
|
$( "[type='text']" ) - - - - - >$( ":text" ) 注意只适用于 input 标签 : $( "input:checked" ) |
3.1.6 表单属性选择器
:enabled
:disabled
:checked
:selected
<body> <form> <input type="checkbox" value="123" checked> <input type="checkbox" value="456" checked> <select> <option value="1">Flowers</option> <option value="2" selected="selected">Gardens</option> <option value="3" selected="selected">Trees</option> <option value="3" selected="selected">Trees</option> </select> </form> <script src="jquery.min.js"></script> <script> // console.log($("input:checked").length); // 2 // console.log($("option:selected").length); // 只能默认选中一个,所以只能lenth:1 $("input:checked").each(function(){ console.log($(this).val()) }) </script> </body>
3.2 筛选器
3.2.1 过滤筛选器
1
|
$( "li" ).eq( 2 ) $( "li" ).first() $( "ul li" ).hasclass( "test" ) |
3.2.2 查找筛选器
查找子标签: $("div").children(".test") $("div").find(".test")
向下查找兄弟标签: $(".test").next() $(".test").nextAll()
$(".test").nextUntil()
向上查找兄弟标签: $("div").prev() $("div").prevAll()
$("div").prevUntil()
查找所有兄弟标签: $("div").siblings()
查找父标签: $(".test").parent() $(".test").parents()
$(".test").parentUntil()
四 操作元素(属性,css,文档处理)
4.1 事件
页面载入
1
2
|
ready(fn) // 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。 $(document).ready( function (){}) -----------> $( function (){}) |
事件绑定
//语法: 标签对象.事件(函数)
eg: $("p").click(function(){})
事件委派:
$("").on(eve,[selector],[data],fn) // 在选择元素上绑定一个或多个事件的事件处理函数。
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<hr>
<button id="add_li">Add_li</button>
<button id="off">off</button>
<script src="jquery.min.js"></script>
<script>
$("ul li").click(function(){
alert(123)
});
$("#add_li").click(function(){
var $ele=$("<li>");
$ele.text(Math.round(Math.random()*10));
$("ul").append($ele)
});
// $("ul").on("click","li",function(){
// alert(456)
// })
$("#off").click(function(){
$("ul li").off()
})
</script>
事件切换
hover事件:
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
over:鼠标移到元素上要触发的函数
out:鼠标移出元素要触发的函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .test{ 200px; height: 200px; background-color: wheat; } </style> </head> <body> <div class="test"></div> </body> <script src="jquery.min.js"></script> <script> // function enter(){ // console.log("enter") // } // function out(){ // console.log("out") // } // $(".test").hover(enter,out) $(".test").mouseenter(function(){ console.log("enter") }); $(".test").mouseleave(function(){ console.log("leave") }); </script> </html>
4.2 属性操作
--------------------------CSS类
$("").addClass(class|fn)
$("").removeClass([class|fn])
--------------------------属性
$("").attr();
$("").removeAttr();
$("").prop();
$("").removeProp();
--------------------------HTML代码/文本/值
$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr])
---------------------------
$("#c1").css({"color":"red","fontSize":"35px"})
attr方法使用:
<input id="chk1" type="checkbox" />是否可见 <input id="chk2" type="checkbox" checked="checked" />是否可见 <script> //对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。 //对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。 //像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此 //需要使用prop方法去操作才能获得正确的结果。 // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // false // ---------手动选中的时候attr()获得到没有意义的undefined----------- // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // true console.log($("#chk1").prop("checked"));//false console.log($("#chk2").prop("checked"));//true console.log($("#chk1").attr("checked"));//undefined console.log($("#chk2").attr("checked"));//checked </script>
4.3 each循环
我们知道,
1
|
$( "p" ).css( "color" , "red" ) |
是将css操作加到所有的标签上,内部维持一个循环;但如果对于选中标签进行不同处理,这时就需要对所有标签数组进行循环遍历啦
jquery支持两种循环方式:
方式一
格式:$.each(obj,fn)
li=[10,20,30,40];
dic={name:"yuan",sex:"male"};
$.each(li,function(i,x){
console.log(i,x)
});
方式二
格式:$("").each(fn)
$("tr").each(function(){
console.log($(this).html())
})
其中,$(this)代指当前循环标签。
each扩展
/* function f(){ for(var i=0;i<4;i++){ if (i==2){ return } console.log(i) } } f(); // 这个例子大家应该不会有问题吧!!! //----------------------------------------------------------------------- li=[11,22,33,44]; $.each(li,function(i,v){ if (v==33){ return ; // ===试一试 return false会怎样? } console.log(v) }); //------------------------------------------ // 大家再考虑: function里的return只是结束了当前的函数,并不会影响后面函数的执行 //本来这样没问题,但因为我们的需求里有很多这样的情况:我们不管循环到第几个函数时,一旦return了, //希望后面的函数也不再执行了!基于此,jquery在$.each里又加了一步: for(var i in obj){ ret=func(i,obj[i]) ; if(ret==false){ return ; } } // 这样就很灵活了: // <1>如果你想return后下面循环函数继续执行,那么就直接写return或return true // <2>如果你不想return后下面循环函数继续执行,那么就直接写return false // ---------------------------------------------------------------------
4.4 文档节点处理
//创建一个标签对象
$("<p>")
//内部插入
$("").append(content|fn) ----->$("p").append("<b>Hello</b>");
$("").appendTo(content) ----->$("p").appendTo("div");
$("").prepend(content|fn) ----->$("p").prepend("<b>Hello</b>");
$("").prependTo(content) ----->$("p").prependTo("#foo");
//外部插入
$("").after(content|fn) ----->$("p").after("<b>Hello</b>");
$("").before(content|fn) ----->$("p").before("<b>Hello</b>");
$("").insertAfter(content) ----->$("p").insertAfter("#foo");
$("").insertBefore(content) ----->$("p").insertBefore("#foo");
//替换
$("").replaceWith(content|fn) ----->$("p").replaceWith("<b>Paragraph. </b>");
//删除
$("").empty()
$("").remove([expr])
//复制
$("").clone([Even[,deepEven]])
4.5 动画效果
显示隐藏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-2.1.4.min.js"></script> <script> $(document).ready(function() { $("#hide").click(function () { $("p").hide(1000); }); $("#show").click(function () { $("p").show(1000); }); //用于切换被选元素的 hide() 与 show() 方法。 $("#toggle").click(function () { $("p").toggle(); }); }) </script> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <p>hello</p> <button id="hide">隐藏</button> <button id="show">显示</button> <button id="toggle">切换</button> </body> </html>
滑动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-2.1.4.min.js"></script> <script> $(document).ready(function(){ $("#slideDown").click(function(){ $("#content").slideDown(1000); }); $("#slideUp").click(function(){ $("#content").slideUp(1000); }); $("#slideToggle").click(function(){ $("#content").slideToggle(1000); }) }); </script> <style> #content{ text-align: center; background-color: lightblue; border:solid 1px red; display: none; padding: 50px; } </style> </head> <body> <div id="slideDown">出现</div> <div id="slideUp">隐藏</div> <div id="slideToggle">toggle</div> <div id="content">helloworld</div> </body> </html>
淡入淡出
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-2.1.4.min.js"></script> <script> $(document).ready(function(){ $("#in").click(function(){ $("#id1").fadeIn(1000); }); $("#out").click(function(){ $("#id1").fadeOut(1000); }); $("#toggle").click(function(){ $("#id1").fadeToggle(1000); }); $("#fadeto").click(function(){ $("#id1").fadeTo(1000,0.4); }); }); </script> </head> <body> <button id="in">fadein</button> <button id="out">fadeout</button> <button id="toggle">fadetoggle</button> <button id="fadeto">fadeto</button> <div id="id1" style="display:none; 80px;height: 80px;background-color: blueviolet"></div> </body> </html>
回调函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-2.1.4.min.js"></script> </head> <body> <button>hide</button> <p>helloworld helloworld helloworld</p> <script> $("button").click(function(){ $("p").hide(1000,function(){ alert($(this).html()) }) }) </script> </body> </html>
4.6 css操作
css位置操作
$("").offset([coordinates])
$("").position()
$("").scrollTop([val])
$("").scrollLeft([val])
示例1:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .test1{ 200px; height: 200px; background-color: wheat; } </style> </head> <body> <h1>this is offset</h1> <div class="test1"></div> <p></p> <button>change</button> </body> <script src="jquery-3.1.1.js"></script> <script> var $offset=$(".test1").offset(); var lefts=$offset.left; var tops=$offset.top; $("p").text("Top:"+tops+" Left:"+lefts); $("button").click(function(){ $(".test1").offset({left:200,top:400}) }) </script> </html>
示例2:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; } .box1{ 200px; height: 200px; background-color: rebeccapurple; } .box2{ 200px; height: 200px; background-color: darkcyan; } .parent_box{ position: relative; } </style> </head> <body> <div class="box1"></div> <div class="parent_box"> <div class="box2"></div> </div> <p></p> <script src="jquery-3.1.1.js"></script> <script> var $position=$(".box2").position(); var $left=$position.left; var $top=$position.top; $("p").text("TOP:"+$top+"LEFT"+$left) </script> </body> </html>
示例3:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body{ margin: 0; } .returnTop{ height: 60px; 100px; background-color: peru; position: fixed; right: 0; bottom: 0; color: white; line-height: 60px; text-align: center; } .div1{ background-color: wheat; font-size: 5px; overflow: auto; 500px; height: 200px; } .div2{ background-color: darkgrey; height: 2400px; } .hide{ display: none; } </style> </head> <body> <div class="div1 div"> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> <h1>hello</h1> </div> <div class="div2 div"></div> <div class="returnTop hide">返回顶部</div> <script src="jquery-3.1.1.js"></script> <script> $(window).scroll(function(){ var current=$(window).scrollTop(); console.log(current); if (current>100){ $(".returnTop").removeClass("hide") } else { $(".returnTop").addClass("hide") } }); $(".returnTop").click(function(){ $(window).scrollTop(0) }); </script> </body> </html>
尺寸操作
$("").height([val|fn])
$("").width([val|fn])
$("").innerHeight()
$("").innerWidth()
$("").outerHeight([soptions])
$("").outerWidth([options])
示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; } .box1{ 200px; height: 200px; background-color: wheat; padding: 50px; border: 50px solid rebeccapurple; margin: 50px; } </style> </head> <body> <div class="box1"> DIVDIDVIDIV </div> <p></p> <script src="jquery-3.1.1.js"></script> <script> var $height=$(".box1").height(); var $innerHeight=$(".box1").innerHeight(); var $outerHeight=$(".box1").outerHeight(); var $margin=$(".box1").outerHeight(true); $("p").text($height+"---"+$innerHeight+"-----"+$outerHeight+"-------"+$margin) </script> </body> </html>
扩展方法 (插件机制)
jQuery.extend(object)
扩展jQuery对象本身。
用来在jQuery命名空间上增加新函数。
在jQuery命名空间上增加两个函数:
<script>
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
jQuery.min(2,3); // => 2
jQuery.max(4,5); // => 5
</script>
jQuery.fn.extend(object)
扩展 jQuery 元素集来提供新的方法(通常用来制作插件)
增加两个插件方法:
<body> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <script src="jquery.min.js"></script> <script> jQuery.fn.extend({ check: function() { $(this).attr("checked",true); }, uncheck: function() { $(this).attr("checked",false); } }); $(":checkbox:gt(0)").check() </script> </body> 复制代码
总结
-----------------------------------------------------------------------------jQuery---------------------------------------------------------------------------------- 1:-为什么要用jQuery? 短小、精悍,写起来简单,省事儿,开发效率高 2:-什么是jQuery? 类似Python里面的模块 库/插件 3:-如何使用jQuery? - 1. 导入 <script src="jquery-3.2.1.js"></script> import re - 2. jQuery.xxxxx --> $() re.xxxx - 3. 兼容性好 4:-JS和jQuery的关系 - jQuery就是JS写的 - JS是基础,jQuery是工具 5:jQuery知识点: - HTML: - CSS: - JS: 动起来--->给GDP戴上绿帽子--->让八级哥和GDP比长短--->找到比翔哥还短的人--->在全班找不仅短还细的人--->找到谁, 然后让谁做什么--->找到标签,修改标签 -------------------------------------------------------------------------选择器---------------------------------------------------------------------------------- 一:基本选择器 1- ID选择器-------------------------------$("#id的值") 2- 类选择器(class)----------------------$(".class的值") 3- 标签选择器(html标签)-------------------$("标签的名字") 4- 所有标签-------------------------------$("*") 5- 组合选择器-----------------------------$("xx,xxx") 二:层级选择器 1- 从一个标签的子子孙孙去找---------------$("ancestor descendant")------------------$("父亲 子子孙孙") 2- 从一个标签的儿子里面找-----------------$("parent>child")-------------------------$("父亲>儿子标签") 3- 找紧挨着的标签-------------------------$("prev+next")next=(下一个)---------------$("标签+下面紧挨着的那个标签") 4- 找后面所有同级的-----------------------$("prev~siblings")------------------------$("翔哥~女人")prev=(上一个)siblings=(兄弟姐妹) 5- 找...包含的...标签---------------------$("...:has('...')") 6- 找...的第一个...-----------------------$("...>...:first") -----------------------$("...>...").first 7- 找...的最后的...-----------------------$("...>...:last") -----------------------$("...>...").last 8- 找...标签下...没有被选中...------------$("... input:not(:checked)") jQuery对象: - 用jQuery选择器查出来的就是jQuery对象 - jQuery对象,他就可以使用jQuery方法,不能使用DOM的方法 - DOM对象和jQuery对象转换: - $(".c1")[0] --> DOM对象 - $(DOM对象) ---------------------------------------------------------------------------筛选器-------------------------------------------------------------------------------- 一:写在引号里面的 $(" :first") -------------------------------获第一个取元素 $(" :last")---------------------------------获取最后一个元素 $(" :not('')")------------------------------不是...... $(" :even")---------------------------------偶数 $(" :odd")----------------------------------奇数 $(" :eq")-----------------------------------获取n个元素 $(" :focus")--------------------------------焦点元素 二:内容 $(" :contains('内容')")---------------------匹配包含给定文本的元素 $(" :empty")--------------------------------匹配所有不包含子元素或者文本的空元素 $(" :has('')")------------------------------匹配含有选择器所匹配的元素的元素-------$("div:has(p)").addClass("test"); $(" :parent") ***** 区别于$("").parent()---匹配含有子元素或者文本的元素 三:可见性 $(" :hidden)隐藏的--------------------------匹配所有不可见元素,或者type为hidden的元素 $(" :visible")可见的------------------------匹配所有的可见元素 四:属性 input[name] -------------------------------有name属性的input input[type='password']----------------------类型是password的input标签 五:表单 :input---------------$(":input")------------配所有 input, textarea, select 和 button 元素 :password-------------.........-------------匹配所有密码框 :checkbox-------------.........-------------匹配所有复选框 :radio----------------.........-------------匹配所有单选按钮 :submit---------------.........-------------匹配所有提交按钮 :button---------------.........-------------匹配所有按钮 :image----------------.........-------------匹配所有图像域 :file-----------------.........-------------匹配所有文件域 :text-----------------.........-------------匹配所有的单行文本框 :reset----------------.........-------------匹配所有重置按钮 表单对象属性 :enable(有效)---------------$("input:enabled")----匹配所有可用元素 :disable(无效)--------------................------匹配所有不可用元素 :checked--------------------................------匹配所有选中的被选中元素(复选框、单选框等,select中的option), 对于select元素来说,获取选中推荐使用 :selected :selected------------$("select option:selected")---匹配所有选中的option元素 -----------------------------------------------------------------筛选(写在信号外面当方法用的)-------------------------------------------------------------------- 1:过滤 $("").first()--------------------------------------------从...筛选出第一个 $("").parent()-------------------------------------------从...筛选出父级 $("").eq()-------------$("p").eq(1)----------------------从...筛选出第n个 .hasClass()------------$(this).hasClass("protected") last()---------------------------------------------------从...筛选出最后一个 filter()---------------$("p").filter(".selected")--------筛选出与指定表达式匹配的元素集合。 2:查找 .children()------------$("div").children()---------------取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。 .find()----------------$("p").find("span")---------------搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。 .next()----------------$("p").next()---------------------取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。 .nextAll()----$("div:first").nextAll().addClass("after");------查找当前元素之后所有的同辈元素。可以用表达式过滤 .nextUntil()--$('#term-2').nextUntil('dt').css('background-color', 'red');----查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止。 .parent()--------------$("p").parent()-------------------取得一个包含着所有匹配元素的唯一父元素的元素集合。 .parents()-------------$("span").parents("p")------------取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。 .parentsUntil()--------$('li.item-a').parentsUntil('.level-1')--查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。 .css('background-color', 'red'); .prev()----------------$("p").prev()---------------------取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。 .prevAll()-------------$("div:last").prevAll().addClass("before");--查找当前元素之前所有的同辈元素 .prevUntil()-----------$("div:last").prevAll().addClass("before");--查找当前元素之前所有的同辈元素 .siblings()------------$("div").siblings()---------------取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选。 ----------------------------------------------------------------------属性----------------------------------------------------------------------------------------- 一:属性 1:attr(name|pro|key,val|fn)---------------------------设置或返回被选元素的属性值。 - 一个参数 获取属性的值 - 两个参数 设置属性的值 - 点击加载图片 2:removeAttr(name)------------------------------------从每一个匹配的元素中删除一个属性 - 删除属性的值 3:prop(n|p|k,v|f) 属性的返回值是布尔类型-------------获取在匹配的元素集中的第一个元素的属性值 4:removeProp(name)------------------------------------用来删除由.prop()方法设置的属性集 - 删除属性的值 二:循环 1:each - $.each(数组/对象, function(i, v){}) - $("div").each(function(){}) 三:CSS 类 1:addClass(class|fn)---------------------addClass("has-error")-------------------为每个匹配的元素添加指定的类名。 ----------------------$('ul li:last').addClass(function() {return 'item-' + $(this).index();}); 2:removeClass([class|fn])----------------$("p").removeClass("selected");---------从所有匹配的元素中删除全部或者指定的类。 3:toggleClass(class|fn[,sw])-------------$("p").toggleClass("selected");---------如果存在(不存在)就删除(添加)一个类。 (切换,有就去掉,没有就加上) 四:HTML代码/文本/值(没有参数就是获取对应的值)(有参数就是设置对应的值) 1:html([val|fn])-------------------------$('p').html();---------------------------取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。 加 html标签 . html("<span>老师,我好饿。</span>") 2:text([val|fn])------------------------$('p').text();----------------------------取得所有匹配元素的内容。 加文本 .text("老师,我好饿。") 3:val([val|fn|arr])---------------------$("input").val();-------------------------获得匹配元素的当前值 - input - 获取的是输入的内容 - checkbox - 获取的是value值 - select - 单选 就是获取值 - 多选 得到的是一个数组,设置的时候也要是数组 ----------------------------------------------------------------------CSS-------------------------------------------------------------------------------------------- 一:CSS 1:css(name|pro|[,val|fn])------------$("p").css("color","red");-------------------访问匹配元素的样式属性。 .css() - .css("color") -> 获取color css值 - .css("color", "#ff0000") -> 设置值 - .css({"color": "#cccccc", "border": "1px solid #ff0000"}) -> 设置多个值 - .css(["color", "border"]) -> 获取多个值 2:jQuery.cssHooks------------------------------------------------------------------直接向 jQuery 中添加钩子,用于覆盖设置或获取特定 CSS 属性时的方法, -------------------------------------------------------------------目的是为了标准化 CSS 属性名或创建自定义属性。 二:位置 1:offset([coordinates])--------$("p:last").offset({ top: 10, left: 30 });--------------------------------获取匹配元素在当前视口的相对偏移。 .offset - 获取相对位置 - 比较的对象是 html 2:position()-------------------$("p:last").html( "left: " + position.left + ", top: " + position.top );--获取匹配元素相对父元素的偏移。 .position - 获取相对已经定位的父标签的位置 - 比较的是最近的那个做过定位的祖先标签 3:scrollTop([val])-------------$("div.demo").scrollTop(300);---------------------------------------------获取匹配元素相对滚动条顶部的偏移 scrollTop([val]) - 返回顶部 4:scrollLeft([val])------------$("div.demo").scrollLeft(300);--------------------------------------------获取匹配元素相对滚动条左侧的偏移。 三:尺寸 1:height([val|fn])-------------$("p").height(20);--------------------------------------------------------取得匹配元素当前计算的高度值(px)。 2:width([val|fn])--------------$("p").width(20);---------------------------------------------------------取得第一个匹配元素当前计算的宽度值(px)。 3:innerHeight()----------------$("p:last").text( "innerHeight:" + p.innerHeight() );---------------------获取第一个匹配元素内部区域高度(包括补白、不包括边框)。 4:innerWidth()-----------------$("p:last").text( "innerWidth:" + p.innerWidth() );-----------------------获取第一个匹配元素内部区域宽度(包括补白、不包括边框)。 5:outerHeight([soptions])------$("p:last").text( "outerHeight:" + p.outerHeight() + " , outerHeight(true):" + p.outerHeight(true) ); --------------------------------------------------------------------------获取第一个匹配元素外部高度(默认包括补白和边框)。 6:outerWidth([options])--------$("p:last").text( "outerWidth:" + p.outerWidth() + " , outerWidth(true):" + p.outerWidth(true) ); --------------------------------------------------------------------------获取第一个匹配元素外部宽度(默认包括补白和边框)。 ---------------------------------------------------------------------文档处理------------------------------------------------------------------------------------ 一:内部插入(加粗) 1:append(content|fn)--> 往后加-------------$("p").append("<b>Hello</b>");-----------------------向每个匹配的元素内部追加内容。 ------------------------------------------->A.append(B)把B添加到A的后面------------------------------------------------------ 2:appendTo(content)--> 往后加--------------$("p").appendTo("div");------------------------------把所有匹配的元素追加到另一个指定的元素元素集合中。 ------------------------------------------->A.append(B)把A添加到B的后面------------------------------------------------------ 3:prepend(content|fn)--> 往前加------------$("p").prepend("<b>Hello</b>");----------------------向每个匹配的元素内部前置内容 ------------------------------------------->A.prepend(B)把B添加到A的前面------------------------------------------------------ 4:prependTo(content)--> 往前加-------------$("p").prependTo("#foo");----------------------------把所有匹配的元素前置到另一个、指定的元素元素集合中。 --------------------------------------------A.prependTo(B) -> 把A添加到B的前面----------------------------------------------------- 二:外部插入(加粗) 1:after(content|fn)--------------$("p").after("<b>Hello</b>");------------------------在每个匹配的元素之后插入内容。 after(content|fn) --> 往后加 -------------A.after(B)--> 把B添加到A的后面 2:before(content|fn)-------------$("p").before("<b>Hello</b>");-----------------------在每个匹配的元素之前插入内容。 --> 往前加--------------A.before(B)--> 把B添加到A的前面 3:insertAfter(content)-----------$("p").insertAfter("#foo");--------------------------把所有匹配的元素插入到另一个、指定的元素元素集合的后面。 --> 往前加--------------A.before(B)--> 把A添加到B的前面 A.insertAfter(B) --> 把A添加到B的后面 4:insertBefore(content)----------$("p").insertBefore("#foo");-------------------------把所有匹配的元素插入到另一个、指定的元素元素集合的前面。 三:包裹 1:wrap(html|ele|fn)--------------$("p").wrap("<div class='wrap'></div>");-------------把所有匹配的元素用其他元素的结构化标记包裹起来。 A.wrap(B) --> B包A 2:unwrap()-----------------------$("p").unwrap()--------------------------------------这个方法将移出元素的父元素。这能快速取消 .wrap()方法的效果。 unwrap()- 不要加参数 匹配的元素(以及他们的同辈元素)会在DOM结构上替换他们的父元素。 3:wrapAll(html|ele)--------------$("p").wrapAll("<div></div>");-----------------------将所有匹配的元素用单个元素包裹起来 4:wrapInner(html|ele|fn)---------$("p").wrapInner("<b></b>");-------------------------将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来 四:替换 1:replaceWith(content|fn)--------$("p").replaceWith("<b>Paragraph. </b>");------------将所有匹配的元素替换成指定的HTML或DOM元素 A.replaceWith(B) --> B替换A 2:replaceAll(selector)-----------$("<b>Paragraph. </b>").replaceAll("p");-------------用匹配的元素替换掉所有 selector匹配到的元素。 A.replaceAll(B) --> A替换B 五:删除 1:empty()------------------------$("p").empty();--------------------------------------删除匹配的元素集合中所有的子节点----清空 内部清空 2:remove([expr])-----------------$("p").remove();-------------------------------------从DOM中删除所有匹配的元素-----------删除 整体都删除 3:detach([expr])-----------------$("p").detach();-------------------------------------从DOM中删除所有匹配的元素-----------剪切 多保存在变量中,方便再次使用 六:复制 clone([Even[,deepEven]])-------$("b").clone().prependTo("p");-----------------------克隆匹配的DOM元素并且选中这些克隆的副本。 --------------------------------------------------------------------------动画------------------------------------------------------------------------------------------ 一:基本 1:show([s,[e],[fn]])----------------$("p").show()------------------------------------显示隐藏的匹配元素。 2:hide([s,[e],[fn]])----------------$("p").hide()------------------------------------隐藏显示的元素 3:toggle([s],[e],[fn])--------------$('td).toggle();---------------------------------用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件 二:滑动 1:slideDown([s],[e],[fn])-----------$("p").fadeIn("slow");---------------------------通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数。 -这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。 2:slideUp([s,[e],[fn]])-------------$("p").slideUp("slow");--------------------------通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。 3:slideToggle([s],[e],[fn])---------$("p").slideToggle("slow");----------------------通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。 三:淡入淡出 1:fadeIn([s],[e],[fn]) 2:fadeOut([s],[e],[fn]) 3:fadeTo([[s],o,[e],[fn]]) - 淡出到0.66透明度 4:fadeToggle([s,[e],[fn]]) - .fadeToggle(3000, function () { alert("真没用3"); }); 四:自定义 animate(p,[s],[e],[fn])1.8* - css属性值都可以设置 - 女朋友变小(漏气) ----------------------------------------------------------------------事件处理--------------------------------------------------------------------------------------- 一:之前绑定事件的方式: 1. onclick=clickMe(); function clickMe() {} 2. ele.onclick = function(){} 3. ele.addEventListener("click", function(){}) 二:jQuery绑定事件的方式: 1. $(ele).on("click", function(){}) 2. $("tbody").delegate(".btn-warning", "click", function(){}) 3. $("tbody").on("click",".btn-warning",function(){}) 我们要用的事件委派 三:常用事件 1:blur([[data],fn])----------------$("p").blur();-----------------------------------------当元素失去焦点时触发 blur 事件。 2:focus([[data],fn])---------------$(document).ready(function(){--------------------------当元素获得焦点时,触发 focus 事件 $("#login").focus(); }); - 获取焦点 - 搜索框例子 3:change([[data],fn])--------------("input[type='text']").change( function() {------------当元素的值发生改变时,会发生 change 事件。 // 这里可以写些验证代码 }); - select 4:click([[data],fn])----------------$("p").click( function () { $(this).hide(); });--------触发每一个匹配元素的click事件 - 点击 5:dblclick([[data],fn])-------------$("p").dblclick( function () { alert("Hello World!"); });---当双击元素时,会发生 dblclick 事件 - 双击 6:scroll([[data],fn])---------------$("div").scroll(function() { $("span").text(x+=1);-------------------------------当用户滚动指定的元素时,会发生 scroll 事件 - 滚动 }); 7:submit([[data],fn])--------------$("form").submit( function () {--------------------------当提交表单时,会发生 submit 事件 return false; -提交 } ); error([[data],fn]) ----不常用------------------- focusin([data],fn)----------------------------当元素获得焦点时,触发 focusin 事件。 focusout([data],fn)---------------------------当元素失去焦点时触发 focusout 事件。 keydown([[data],fn])--------------------------当键盘或按钮被按下时,发生 keydown 事件。 keypress([[data],fn])-------------------------当键盘或按钮被按下时,发生 keypress 事件。 keyup([[data],fn])----------------------------当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上。 mousedown([[data],fn])------------------------当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。 mouseenter([[data],fn])-----------------------当鼠标指针穿过元素时,会发生 mouseenter 事件。该事件大多数时候会与mouseleave 事件一起使用。 mouseleave([[data],fn])-----------------------当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用。 mousemove([[data],fn])------------------------当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。 mouseout([[data],fn])-------------------------当鼠标指针从元素上移开时,发生 mouseout 事件 mouseover([[data],fn])------------------------当鼠标指针位于元素上方时,会发生 mouseover 事件 mouseup([[data],fn])--------------------------当在元素上放松鼠标按钮时,会发生 mouseup 事件。 resize([[data],fn])---------------------------当调整浏览器窗口的大小时,发生 resize 事件 select([[data],fn])---------------------------当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。 unload([[data],fn])---------------------------在当用户离开页面时,会发生 unload 事件。 四:页面载入 ready(fn) $(document).ready(function(){ // 在这里写你的代码... }); 文档树加载完之后绑定事件(绝大部分情况下) $(document).ready(function(){ // 绑定事件的代码 .... }) 简写: $(function($){ // 绑定事件的代码 .... }); ----------------------------------------------------------------------------jQuery扩展--------------------------------------------------------------------------- $.xxx() $.extend({ "GDP": function () { console.log("戴小红花"); } }); - 给jQuery添加扩展 - $.GDP() $("").xxx() $.fn.extend({ "BJG": function () { console.log("英语八级就是好!"); } }) - 给jQuery对象添加扩展 - $(":input").BJG() 保存函数(func1)私有 (function(jq){ // 搞事情 $.fn.extend({ "BJG": function () { func1(); console.log("英语八级就是好!"); } }); function func1() { // 搞小事情 。。。。 } })(jQuery); -----------------------------------------------------------------------------常用插件-------------------------------------------------------------------------------- - Sweet Alert - jQuery lazyload - 懒加载图片 - Font Awesome - 字体图标 - Toastr - 通知栏的插件