前端学习之Jquery
Posted quanloveshui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端学习之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 对象
基本语法:$(selector).action()
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。 美元符号定义 jQuery 选择符(selector)"查询"和"查找" HTML 元素 jQuery 的 action() 执行对元素的操作 实例: $(this).hide() - 隐藏当前元素 $("p").hide() - 隐藏所有 <p> 元素 $("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素 $("#test").hide() - 隐藏所有 id="test" 的元素
开始使用JQuery,首先引用JQ插件
<script src="jquery-3.1.1.js"></script>
二 、寻找元素(重要的选择器和筛选器)
选择器
基本选择器 :$("*") 所有元素
$("#id") 例如:$("#id") id="id1" 的元素
$(".class") 例如:$(".intro") 所有 class="intro" 的元素
$("element") 例如:$("p") 所有 <p> 元素
$(".class,p,div")
层级选择器 :$(".outer div") $(".outer>div") $(".outer+div") $(".outer~div")
基本筛选器 :$("li:first") 第一个 <li> 元素
$("li:eq(2)") 列表中的第2个元素(index 从 0 开始)
$("li:even") 所有偶数 <li> 元素
$("li:gt(1)") 列出 index 大于 1 的元素
属性选择器 :$(‘[id="div1"]‘) $(‘["alex="sb"][id]‘)
表单选择器 :$("[type=‘text‘]")----->$(":text") (简写) 注意只适用于input标签
$("input:checked")
筛选器
过滤筛选器: $("li").eq(2) $("li").first() $("ul li").hasclass("test")
查找筛选器:
$("div").children(".test") $("div").find(".test")
$(".test").next() $(".test").nextAll() $(".test").nextUntil()
$("div").prev() $("div").prevAll() $("div").prevUntil()
$(".test").parent() $(".test").parents() $(".test").parentUntil()
$("div").siblings() //获取div标签的兄弟
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.1.1.js"></script> <style> .menu height: 500px; width: 30%; background-color: gainsboro; float: left; .title line-height: 50px; background-color: #425a66; color: forestgreen; .hide display: none; </style> </head> <body> <div class="outer"> <div class="menu"> <div class="item"> <div class="title" onclick="show(this);">菜单一</div> <div class="con"> <div>111</div> <div>111</div> <div>111</div> </div> </div> <div class="item"> <div class="title" onclick="show(this);">菜单二</div> <div class="con hide"> <div>222</div> <div>222</div> <div>222</div> </div> </div> <div class="item"> <div class="title" onclick="show(this);">菜单三</div> <div class="con hide"> <div>333</div> <div>333</div> <div>333</div> </div> </div> </div> <div class="content"></div> </div> </body> <script> function show(self) // console.log($(self).text()) $(self).next().removeClass("hide") //去除选中标签的下一个标签的hide样式 例如选中菜单二标签,就是让<div>222</div>显示 $(self).parent().siblings().children(".con").addClass("hide") </script> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.1.1.js"></script> <style> * margin: 0px; padding: 0px; .tab_outer margin: 0px auto; width: 60%; .menu background-color: #cccccc; /*border: 1px solid red;*/ line-height: 40px; .menu li display: inline-block; .menu a border-right: 1px solid red; padding: 11px; .content background-color: tan; border: 1px solid green; height: 300px; .current background-color: darkgray; color: yellow; border-top: solid 2px rebeccapurple; .hide display: none; </style> </head> <body> <div class="tab_outer"> <ul class="menu"> <li xxx="c1" class="current" onclick="tab(this);">菜单一</li> <li xxx="c2" onclick="tab(this);">菜单二</li> <li xxx="c3" onclick="tab(this);">菜单三</li> </ul> <div class="content"> <div id="c1">内容一</div> <div id="c2" class="hide">内容二</div> <div id="c3" class="hide">内容三</div> </div> </div> </body> <script> function tab(self) $(self).addClass("current"); $(self).siblings().removeClass("current"); var s=$(self).attr(‘xxx‘); //attr 设置或返回被选元素的属性值。当点击菜单一时 s="c1" $("#"+s).removeClass("hide").siblings().addClass("hide");// "#"+s为字符串拼接=#c1 即$("#"+s)=$(#c1) jquery选中的标签去除hide他的兄弟标签添加hide </script> </html>
三 、操作元素(属性 CSS 和 文档处理)
属性操作
$("p").text() $("p").html() $(":checkbox").val()
$(".test").attr("alex") $(".test").attr("alex","sb")
$(".test").attr("checked","checked") $(":checkbox").removeAttr("checked")
$(".test").prop("checked",true)
$(".test").addClass("hide")
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.1.1.js"></script> </head> <body> <button onclick="selectall();">全选</button> <button onclick="che();">取消</button> <button onclick="reverse();">反选</button> <table border="1"> <tr> <td><input type="checkbox"></td> <td>111</td> </tr> <tr> <td><input type="checkbox"></td> <td>222</td> </tr> <tr> <td><input type="checkbox"></td> <td>333</td> </tr> <tr> <td><input type="checkbox"></td> <td>444</td> </tr> </table> </body> <script> function selectall() $("table :checkbox").prop("checked",true) function che() $("table :checkbox").prop("checked",false) function reverse() //each() 方法规定为每个匹配元素规定运行的函数。 $("table :checkbox").each(function() if ($(this).prop("checked")) $(this).prop("checked",false) else $(this).prop("checked",true) ); </script> </html>
CSS操作
(样式) css("color:‘red‘,backgroud:‘blue‘")
(位置) offset() position() scrollTop() scrollLeft()
(尺寸) height() width()
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.1.1.js"></script> <script> window.onscroll=function() var current=$(window).scrollTop(); console.log(current) if (current>100) $(".returnTop").removeClass("hide") else $(".returnTop").addClass("hide") function returnTop() // $(".div1").scrollTop(0); $(window).scrollTop(0) </script> <style> body margin: 0px; .returnTop height: 60px; width: 100px; background-color: darkgray; position: fixed; right: 0; bottom: 0; color: greenyellow; line-height: 60px; text-align: center; .div1 background-color: orchid; font-size: 5px; overflow: auto; width: 500px; .div2 background-color: darkcyan; .div3 background-color: aqua; .div height: 300px; .hide display: none; </style> </head> <body> <div class="div1 div"> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> <p>hello</p> </div> <div class="div2 div"></div> <div class="div3 div"></div> <div class="returnTop hide" onclick="returnTop();">返回顶部</div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .back background-color: rebeccapurple; height: 2000px; .shade position: fixed; top: 0; bottom: 0; left:0; right: 0; background-color: coral; opacity: 0.4; .hide display: none; .models position: fixed; top: 50%; left: 50%; margin-left: -100px; margin-top: -100px; height: 200px; width: 200px; background-color: gold; </style> </head> <body> <div class="back"> <input id="ID1" type="button" value="click" onclick="action1(this)"> </div> <div class="shade hide"></div> <div class="models hide"> <input id="ID2" type="button" value="cancel" onclick="action2(this)"> </div> <script src="jquery-3.1.1.js"></script> <script> function action1(self) $(self).parent().siblings().removeClass("hide"); function action2(self) $(self).parent().parent().children(".shade,.models").addClass("hide") // function action(act) // var ele=document.getElementsByClassName("shade")[0]; // var ele2=document.getElementsByClassName("models")[0]; // if(act=="show") // ele.classList.remove("hide"); // ele2.classList.remove("hide"); // else // ele.classList.add("hide"); // ele2.classList.add("hide"); // // </script> </body> </html>
文档处理
内部插入 $("#c1").append("<b>hello</b>") $("p").appendTo("div") prepend() prependTo() 外部插入 before() insertBefore() after insertAfter() replaceWith() remove() empty() clone()
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="outer"> <div class="condition"> <div class="icons" style="display:inline-block"> <a onclick="add(this);"><button>+</button></a> </div> <div class="input" style="display:inline-block"> <input type="checkbox"> <input type="text" value="alex"> </div> </div> </div> <script src="jquery-3.1.1.js"></script> <script> function add(self) var $duplicate = $(self).parent().parent().clone(); $duplicate.find(‘a[onclick="add(this);"]‘).attr(‘onclick‘,"removed(this)").children("").text("-"); $duplicate.appendTo($(self).parent().parent().parent()); function removed(self) $(self).parent().parent().remove() </script> </body> </html>
滚动菜单示例
以上是关于前端学习之Jquery的主要内容,如果未能解决你的问题,请参考以下文章