JQuery对象是通过JQquery包装DOM对象后产生的对象。JQuery对象是JQuery独有的。如果一个对象是JQuery对象,那么它就可以使用JQuery中的方法。
$("#test").html(); 获取ID为test的元素内的html代码 DOM实现代码:document.getElementById("test").innerHTML; 虽然JQuery对象是DOM对象包装后产生的,但是JQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用JQuery中的方法 约定如果获取的是JQuery对象,那么要在变量前加$ var $variable=JQuery对象 var variable=DOM对象 $variable[0]:JQuery对象转为DOM对象$("#test")[0].innerHTML;
选择器
基本选择器
$("*") 通配 $(#id") ID $(".class") 类 $("element") 标签 $(".class,p,div") 多个元素
层级选择器
$(".outer div") .outer所有div后代 $(".outer>div") .outer所有子代div $(".outer+div") .outer毗邻div标签 $(".outer~div") .outer普通兄弟div标签
基本选择器
$("li:first") li中的第一个元素 $("li:eq(2)") li中索引为2的元素 $("li:even") li中索引为偶数的元素 $("li:gt(1)") li中索引大于1的元素 $("li:lt(3)") li中索引小于2的元素 $("li:odd") li中索引为奇数的元素
属性选择器
$('[id="div1"]') id为div1的元素 $('[xiaobai="handsome"][id]') xiaobai属性为handsome且有id属性的标签
表单选择器
只适用于input标签 $('[type="text"]')=>$(":text")
筛选器
过滤选择器
$("li").eq(2) $("li").first() $("ul li").hasClass("test")
查找筛选器
查找子标签: $("div").children(".test") 查找div中所有类名为test的子元素 $("div").find(".test") 查找div中所有类名为test的后代标签 向下查找兄弟标签:$(".test").next() 类名为test的下一个兄弟元素 $(".test").nextAll() 类名为test以后的所有兄弟元素 $(".test").nextUntil() 类名为test以后的某条件之前的元素,不包含末元 素 向上查找兄弟标签:$(".test").prev() 类名为test的之前的一个兄弟元素 $(".test").prevAll() $(".test").prevUntil() 查找所有兄弟标签:$(".test").siblings() 查找父标签: $(".test").parent() $(".test").parents() $(".test").parentUntil()
Filter
<div class="grandpa"> <div class="pa"> <div class="child not-gay"></div> <div class="child2"></div> <div class="child3"></div> </div> </div> <script src="jquery-3.2.1.js"></script> <script> $(".child").filter(".not-gay").css("border","solid 2px yellow"); </script>//==============
$(".child").filter(".not-gay").css({"border":"solid 2px yellow","margin-left":"5px"}); 添加多种样式
事件
页面载入
ready(fn) $(document).ready(function(){})=>$(function(){}) //当DOM载入完成后再进行此代码的执行
事件绑定
$(".add").click(function () { $(".box").append('<li class="item">666</li>') }). //语法:标签对象.事件(函数)
事件委派
<ul class="box"> <li class="item">111</li> <li class="item">222</li> <li class="item">333</li> <li class="item">444</li> <li class="item">555</li> </ul> <button class="add">add</button> <button class="off">off</button> <script src="jquery-3.2.1.js"></script> <script> $(".box").on("click",".item",function () { alert(123); }); $(".add").click(function () { $(".box").append('<li class="item">666</li>') }). $("off").click(function () { $(".box").off("click"); }); </script>
事件切换
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
over:鼠标移到元素上要触发的函数
out:鼠标移出元素要触发的函数
格式:$("").hover(fnover(){},fnout(){})
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0; } .container{ border:1px solid red; width:790px; height:340px; margin:100px auto; position:relative; } ul{ list-style: none; } .page{ position:absolute; top:290px; left:290px; } .page li{ height:20px; width:20px; border-radius: 10px; display:inline-block; background-color: white; } .page .active{ background-color: red; } .hide{ display: none; } .left,.right{ background-color: lightgray; text-align: center; width:30px; height:50px; position:absolute; opacity: 0.5; line-height: 50px; display:none; font-size:30px; } .left{ top:150px; left:0; } .right{ right:0; top:150px; } .container:hover .btn{ display:block; } </style> </head> <body> <div class="container"> <ul class="good_img"> <li><img src="mat1.jpg" alt=""></li> <li class="hide"><img src="mat2.jpg" alt=""></li> <li class="hide"><img src="mat3.jpg" alt=""></li> <li class="hide"><img src="mat4.jpg" alt=""></li> <li class="hide"><img src="mat5.jpg" alt=""></li> <li class="hide"><img src="mat6.jpg" alt=""></li> <li class="hide"><img src="mat7.jpg" alt=""></li> <li class="hide"><img src="mat8.jpg" alt=""></li> </ul> <ul class="page"> <li class="active"></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> <div class="btn left"> < </div> <div class="btn right"> > </div> </div> <script src="jquery-3.2.1.js"></script> <script> var i=0; $(".page li").mouseover(function () { i=$(this).index(); $(this).addClass("active").siblings().removeClass("active"); $(".good_img li").eq(i).removeClass("hide").siblings().addClass("hide"); }); function loop_img(){ if (i==7){ i=0; } i++; $(".good_img li").eq(i).removeClass("hide").siblings().addClass("hide"); $(".page li").eq(i).addClass("active").siblings().removeClass("active"); } $(".right").click(function () { loop_img() }); $(".left").click(function () { if(i==0){ i=7 } i--; $(".good_img li").eq(i).removeClass("hide").siblings().addClass("hide"); $(".page li").eq(i).addClass("active").siblings().removeClass("active"); }); ID=setInterval(loop_img,1000); $(".container").hover(function () { clearInterval(ID) },function () { ID=setInterval(loop_img,1000); }) </script> </body> </html>
属性操作
--------------------------CSS类 $("").addClass(class|fn) $("").removeClass([class|fn]) --------------------------属性 $("").attr(); //括号中写入属性可以获得属性的值,写入属性和值可以改变相应属性的值 $("").removeAttr(); $("").prop(); $("").removeProp();//对于HTML元素本身的固有属性,在处理时,使用prop方法//对于HTML元素我们自己定义的DOM属性,在处理时,使用attr方法//像checkbox,radio和select这样的元素,选中属性对应的"checked"和"selected",这些固有属性需要使用prp方法才能获得正确的结果 --------------------------HTML代码/文本/值 $("").html([val|fn]) $("").text([val|fn]) $("").val([val|fn|arr]) --------------------------- $("#c1").css({"color":"red","fontSize":"35px"})
each循环
我们使用Jquery获取的是一个集合对象,是将所有的操作加到集合中的所有元素;但对于选中标签进行不同处理,这个时候就需要对所有元素进行循环遍历。
方式一:
格式:$.each(obj,fn) arr=["xiaobai","xiaohei","xiaohong","xiaozi"]; $.each(arr,function (i,v) { //第一个参数i为索引,第二个参数v为值 if(v=="xiaohei"){ return false; //return后加false会退出所有循环相当于break,除false外则退出当前 } //当前循环相当于continue console.log(v); //xiaobai,xiaohong,xiaozi });
// if(v=="xiaohei"){ // return ; // } // console.log(v); // xiaobai // });
方式二:
格式:$("").each(function(){}) $("tr").each(function(){ console.log($(this).html()) })
文档节点处理
//创建一个标签对象 $("<标签名>") $("<p>") //内部插入 $("").append(content|fn) ------>$(".test").append("<b>hello</b>"); $("").appendTo(content|fn) ------>$("<b>hello</b>").appendTo(".test"); $("").prepend(content|fn) ------>$("<b>hello</b>").prepend(".test"); $("").prepend(content|fn) ------>$(".test").prepend(<b>hello</b>");// 在.test首位添加b标签 $("<b>hello</b>").prependTo(".test"); //外部插入 $("").after(content|fn) ------>$(".test").after("<b>hello</b>");//在.test 后添加b标签 $("").before(content|fn) ------>$(".test").before("<b>hello</b>"); $("").insertAfter(content) ------>$("<b>hello</b>").insertAfter(".test");/在.test 后添加b标签 $("").insertBefore(content) ------>$("<b>hello</b>").insertBefore(".test"); //删除 $("").empty() //删除标签中的所有内容,但是保留标签本身 $("").remove() //删除标签本身 //复制 $("").clone([Even[,deepEven]])
动画效果
显示和隐藏
<img src="http://i2.hdslb.com/bfs/archive/2115586ec430d1472962f1742bf39e67b32cefb5.jpg" alt=""> <button class="show">show</button> <button class="hide">hide</button> <button class="toggle">toggle</button> <script src="jquery-3.2.1.js"></script> <script> $(".show").click(function () { $("img").show(); }); $(".hide").click(function () { $("img").hide(); }); $(".toggle").click(function () { $("img").toggle(1000); })
滑动
<img src="http://i2.hdslb.com/bfs/archive/2115586ec430d1472962f1742bf39e67b32cefb5.jpg" alt=""> <button class="slideup">slideup</button> <button class="slidedown">slidedown</button> <button class="slidetoggle">slidetoggle</button> <script src="jquery-3.2.1.js"></script> <script> $(".slideup").click(function () { $("img").slideUp(); }); $(".slidedown").click(function () { $("img").slideDown(); }); $(".slidetoggle").click(function () { $("img").slideToggle(1000); })
淡入淡出
<img src="http://i2.hdslb.com/bfs/archive/2115586ec430d1472962f1742bf39e67b32cefb5.jpg" alt=""> <button class="fadein">fadein</button> <button class="fadeout">fadeout</button> <button class="fadetoggle">fadetoggle</button> <button class="fadeto">fadeto</button> <script src="jquery-3.2.1.js"></script> <script> $(".fadein").click(function () { $("img").fadeIn(1000); }); $(".fadeout").click(function () { $("img").fadeOut(1000); }); $(".fadetoggle").click(function () { $("img").fadeToggle(1000); }); $(".fadeto").click(function () { $("img").fadeTo(1000,0.4); })
CSS操作
$("").offset([coordinates]) $("").position() $("").scrollTop([val]) $("").scrollLeft([val])
offset
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0; } .move_div{ background-color: #7CD0FF; height:200px; width:200px; } </style> </head> <body> <div class="move_div"></div> <script src="jquery-3.2.1.js"></script> <script> var mouse_x=0,mouse_y=0; $(".move_div").mousedown(function (e) { mouse_x=e.clientX; mouse_y=e.clientY; var origin_x=$(this).offset().left; var origin_y=$(this).offset().top; $(document).mousemove(function (e) { var new_x=e.clientX; var new_y=e.clientY; $(".move_div").offset({top:origin_y+new_y-mouse_y,left:origin_x+new_x-mouse_x}) }); $(document).mouseup(function () { $(document).off(); }) }); </script> </body> </html>
scrollTop
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0; } .box{ width: 100%; height:2000px; background-color: #00a1d6; } .back{ width:70px; height: 50px; text-align: center; line-height: 50px; position:fixed; bottom:20px; right:20px; color:white; background-color: #7EFF67; display: none; } </style> </head> <body> <div class="box"></div> <div class="back">TOP</div> <script src="jquery-3.2.1.js"></script> <script> $(window).scroll(function () { if($(window).scrollTop()>200){ $(".back").show() }else{ $(".back").hide() } }); $(".back").click(function () { $(window).scrollTop(0); }) </script> </body> </html>
position
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0; } .higher{ height:200px; width:200px; background-color: #00a1d6; } /*.lower{*/ /*position: relative;*/ /*}*/ .inner{ height:300px; width:300px; background-color: blanchedalmond; } </style> </head> <body> <div class="higher"></div> <div class="lower"> <div class="inner"></div> </div> <script src="jquery-3.2.1.js"></script> <script> console.log($(".inner").position().top); console.log($(".inner").position().left); </script> </body> </html>
来源:https://www.cnblogs.com/c491873412/p/7359633.html