Web学习历程记录(十三)—— jQuery

    科技2022-08-15  99

    jQuery

    概述

    jq就是js库,封装了js常见的操作

    jQuery的作用 简化js的DOM树操作

    jq与js对象转换

    js对象:document.getElement() 获得的都是js对象 大部分是属性 jq对象:$()大部分是方法

    jq本质上虽然是js,但是使用jq的属性和方法必须保证对象是jQuery对象而不是js方式获得的DOM对象。 使用js方式获取的对象是js的DOM对象,使用jq获取的对象是jq对象

    转换语法 js的DOM对象转换成jQuery对象,语法:$(js对象) jQuery对象转换成js对象,语法:jquery对象[索引]或jquery对象.get(索引):一般索引写0

    <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../js/jquery-3.3.1.js"></script> </head> <body> <span id="spanId"></span><br/> <input type="button" value="插入内容" onclick = "writeIn()"/> <input type="button" value="插入内容" onclick = "writeIn02()"/> </body> <script> function writeIn() { var spanEle = document.getElementById("spanId"); var $sE = $(spanEle); $sE.html("hello..."); } function writeIn02() { var $spanEle = $("#spanId"); var spanEle = $spanEle[0]; spanEle.innerHTML = "hello"; } </script> </html>

    jq中事件的使用

    基本事件的使用

    点击事件

    <body> <input id="btnid" type="button" value="click"/> </body> <script> $("#btnid").click(function () { alert("点击") }) </script>

    获得焦点和失去焦点

    <body> <input id="btnid" type="text" value="focus"/> </body> <script> $("#btnid").focus(function () { alert("获得了焦点"); }); $("#btnid").blur(function () { alert("失去焦点"); }); </script>

    内容改变事件

    <body> <select id="select"> <option value = "1">这是1</option> <option value = "2">这是2</option> <option value = "3">这是3</option> <option value = "4">这是4</option> </select> </body> <script> $("#select").change(function () { alert("内容改变为" + this.value); }) ; </script>

    鼠标相关事件

    <head> <meta charset="UTF-8"> <title>Title</title> <script src="../js/jquery-3.3.1.js"></script> <style> #divId{ width:200px; height:200px; background: black; } </style> </head> <body> <div id = "divId"></div> </body> <script> $("#divId").mouseenter(function () { $(this).css("backgroundColor","red"); }); $("#divId").mouseout(function () { $(this).css("backgroundColor","blue"); }); </script>

    键盘相关事件

    <body> <input id="inputId" type="text"> </body> <script> $("#inputId").keydown(function () { console.log("键盘摁下") }) $("#inputId").keyup(function () { console.log("键盘抬起"); }); </script>

    事件的绑定与解绑

    事件的绑定 jq元素对象.on(事件类型,function(){})

    事件的解绑 jq元素对象.off(事件名称)

    <body> <input id="btnid" type="button" value="click"/><br/> <input id="bthid2" type="button" value="解绑"> </body> <script> var btn = $("#btnid"); btn.click(function () { alert("helli") }) $("#btnid2").on("click",function () { btn.off("click"); }); </script>

    事件切换

    <body> <div id = "divId"></div> </body> <script> $("#divId").mouseenter(function () { $(this).css("backgroundColor","red"). mouseout(function () { $(this).css("backgroundColor","blue"); }); </script>

    jQ动画

    基本效果

    方法 show([speed],[easing],[fn]) 显示元素方法 hide([speed],[easing],[fn]) 隐藏元素方法 toggle([speed],[easing],[fn]) 切换元素方法

    参数 speed 三种预定速度之一的字符串(“slow”,“normal”,or"fast") easing 用来指定切换,默认是swing,可用参数是linear fn 在动画完成时执行的函数,每个元素执行一次

    <body> <input type="button" value="show()" id="btn1"/> <input type="button" value="hide()" id="btn2"/> <input type="button" value="toggle()" id="btn3"/><br/> <div id="div1" style="width: 100px;height: 100px;border: 1px solid red;"></div> </body> <script> $("#btn1").click(function () { $("#div1").show(1000); }); $("#btn2").click(function () { $("#div1").hide(1000); }); $("#btn3").click(function () { $("#div1").toggle(); }) </script>

    滑动效果

    方法 slideDowm([speed],[easing],[fn]) 向下滑动方法 slideUp([speed],[easing],[fn]) 向上滑动方法 slideToggle([speed],[easing],[fn]) 切换元素方法

    淡入淡出效果

    方法 fadeIn(同上) fadeOut(同上) fadeToggle(同上)

    jQ选择器

    基本选择器

    标签选择器(元素选择器) $(“html标签名”) 获得所有匹配标签名称的于元素 id选择器 $("#id的属性值") 获得与指定id属性值匹配的元素 类选择器 $(".class的属性值") 获得与指定的class属性值匹配的元素

    层级选择器

    后代选择器 $(“A B”) 选择A元素内部的所有B元素 子选择器 $(“A>B”) 选择A元素内部的所有B子元素 兄弟选择器 $(“A+B”) 获得A元素同级的下一个B元素 兄弟选择器 $(“A~B”) 获得A元素同级的所有B元素

    属性选择器

    $(“A[属性名]”) 包含指定属性的选择器 $(“A[属性名=值]”) 包含指定属性等于指定值的选择器

    基本过滤选择器

    首元素选择器 :first 获得选择的元素中的第一个元素 尾元素选择器 :last 获得选择的元素中的最后一个元素 非元素选择器 :not(selecter) 不包括指定内容的元素 偶数选择器 :even 偶数,从0开始 奇数选择器 :odd 奇数,从0开始 等于索引选择器 :eq(index) 指定索引元素 大于索引选择器 :gt(index) 小于索引选择器 :It(index)

    表单属性选择器

    可用元素选择器 :enabled 获得可用元素 不可用元素选择器 :disable 获得不可用元素 选中选择器 :checked 获得单选/复选框选中的元素 选中选择器 :selected 获得下拉框选中的元素

    JQ操作样式

    方法 css(name) 获取CSS样式 css(name,value) 设置CSS样式

    <body> <div id="divId" style="width: 100px ; height: 100px ; background-color: #ff0000;"></div> <input type="button" value="获得背景色样式值" id="btn01"/> <input type="button" value="设置背景色样式" id="btn02"/> </body> <script> $("#btn01").click(function () { var colorValue = $("#divId").css("background-color"); alert("colorValue = " + colorValue); }); $("#btn02").click(function () { $("#divId").css("background-color" , "green"); }); </script>

    jq操作属性

    方法 attr(name,[value]) 获得/设置属性的值 prop(name,[value]) 获得/设置属性的值(checked,selected)

    使用JQ操作DOM

    API val([value]) 获得/设置标签里面value属性相应的值 text([value]) 获得/设置元素的文本内容 html([value]) 获得/设置元素的标签体内容

    val()和val(…)

    <body> <input type="text" value="hello" id="inputId"/> <br/> <input type="submit" value="获得value" id="btn01" /> <input type="submit" value="设置value" id="btn02"/> </body> <script> $("#btn01").click(function () { var value = $("#inputId").val(); console.log(value); }); $("#btn02").click(function () { $("#inputId").val("balabalablabala"); }); </script>

    text()和html()

    <body> <p id="pid"></p><br/> <input type="button" value="html(...)" id="btn01"/> <input type="button" value="text(...)" id="btn02"/> </body> <script> $("#btn01").click(function () { $("#pid").html("<font color='red'>hello...html</font>"); }); $("#btn02").click(function () { $("#pid").text("<font color = 'red'>hello...text</font>");//不支持标签 }); </script>

    JQ的创建,插入

    API

    $(“A”) 创建A元素对象 append(element) 添加成最后一个子元素,两者之间是父子关系 prepend(element) 添加成第一个子元素,两者之间是父子关系 appendTo(element) 添加到父元素的内部最后面 prependTo(element) 添加到父元素的内部最前面 before(element) 添加到当前元素前面,两者之间是兄妹关系 after(element) 添加到当前元素的后面,两者之间是兄妹关系

    内部插入

    append a.apend(c) 将c插入到a的内部的后面 appendTo c.appendTo(a) 将c插入到a的内部的后面 <a> ... <c></c> </a> prepend a.prepend(c) 将c插入到a的内部的前面 prependTo c.prepend(a) 将c插入到a的内部的前面 <a> <c></c> ... </a>

    外部插入

    after a.after(c) <a></a><c></c> before a.before(c) <c><c><a></a>

    jq移除节点

    API remove() 删除指定元素 empty() 清空指定元素的所有子元素

    JQ遍历

    js方式遍历

    for(var i = 0;i<元素数组.length;i++){ 元素数组[i]; }

    <script> var array = [1,2,3,4,5]; for(var i = 0 ; i < array.length ; i++){ array[i]; } </script>

    jq对象方法遍历

    jquery对象.each(function(index,element){})

    <script> var array = [1,2,3,4,5]; $(array).each(function (a,n) { console.log("array[" +a+ "]="+n); }); </script>

    jq全局遍历

    $.each(jquery,function(index,element){});

    <script> var array = [1,2,3,4,5]; $.each($(array),function (a,n) { console.log(a,n); }) </script>

    jq3.0新特性for of语句遍历 for(变量 of jquery对象){ 变量; }

    for(n of $ (array)){ console.log(n); }

    案例

    使用JQuery完成页面定时广告弹出

    进入页面3s后弹出广告,3s后广告隐藏

    <body> <div id="adDiv" style="width: 100%;height: 300px;display: none"> <img src="../src/ad.jpg" height="100%" width="100%"/> </div> </body> <script> setTimeout("showAd()",3000); function showAd(){ var $adObj = $("#adDiv"); $adObj.show(3000,function () { setTimeout("hideAd()",3000); }); } function hideAd(){ var $adObj = $("#adDiv"); $adObj.hide(3000); } </script>

    使用jquery完成表格的隔行换色

    使用筛选器,匹配出奇数偶数行,设置背景色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../js/jquery-3.3.1.js"></script> </head> <body> <table width="500px" align="center" border="1px"> <tr> <td><input type="checkbox" id="all" /></td> <td>商品名称</td> <td>商品价格</td> <td>商品数量</td> <td>操作</td> </tr> <tr> <td><input type="checkbox" class="one"/></td> <td>Mac</td> <td>18800</td> <td>10</td> <td> <a href="#">删除</a> <a href="#">修改</a> </td> </tr> <tr> <td><input type="checkbox" class="one"/></td> <td>Mac</td> <td>18800</td> <td>10</td> <td> <a href="#">删除</a> <a href="#">修改</a> </td> </tr> <tr> <td><input type="checkbox" class="one"/></td> <td>Mac</td> <td>18800</td> <td>10</td> <td> <a href="#">删除</a> <a href="#">修改</a> </td> </tr> <tr> <td><input type="checkbox" class="one"/></td> <td>Mac</td> <td>18800</td> <td>10</td> <td> <a href="#">删除</a> <a href="#">修改</a> </td> </tr> <tr> <td><input type="checkbox" class="one"/></td> <td>Mac</td> <td>18800</td> <td>10</td> <td> <a href="#">删除</a> <a href="#">修改</a> </td> </tr> </table> </body> <script> $("tr:odd").css("backgroundColor","#ffb6c1"); $("tr:even").css("backgroundColor","#4f818d"); </script> </html>

    使用jq完成复选框效果

    <script> $("#all").click(function () { $(".one").attr("checked",this.checked); }); </script>

    使用jq完成表格换色

    <script> var color; $("tr:odd").css("backgroundColor","#ffb6c1"); $("tr:even").css("backgroundColor","#4f818d"); $("tr").mouseenter(function () { color = $(this).css("backgroundColor"); $(this).css("backgroundColor","red"); }); $("tr").mouseout(function () { $(this).css("backgroundColor",color); }) $("#all").click(function () { $(".one").attr("checked",this.checked); }); </script>

    电子时钟

    <body> <span id="spanid"> </span> </body> <script> setInterval("gettime()",1000) function gettime() { var data = new Date().toLocaleString(); $("#spanid").html(data); } </script>
    Processed: 0.028, SQL: 9