1. 遍历元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="../jQuery.min.js"></script> </head> <body> <div>1</div> <div>2</div> <div>3</div> <!-- 1. $("div").each( function(index, dom ) { }); 2. $.each($("div"), function(index, dom) { }); 3. 遍历dom对象, 用$("div").each(); 遍历数组, 对象等, 使用$.each(); $().each():以每一个匹配的元素作为上下文来执行一个函数; $.each(): 它是一个工具, 不同于遍历jQuery对象的 $().each()方法,此方法可用于遍历任何对象; $().each():> 在dom处理上面用的较多 $.each():> 通常用来遍历数组或对象 --> <script> var arr = ["red", "green", "purple"]; $(function () { //1. each方法:遍历元素 $("div").each(function (index, dom) { console.log(index); //索引号 console.log(dom); //dom元素对象 $(dom).css("color", "red"); //dom对象转换为jQuery对象($(dom)) $(dom).css("color", arr[index]); // }); console.log('---------------------'); //2. $.each()遍历: 主要用来遍历数据,处理数据, 遍历所有对象 // console.log($("div")); $.each($("div"), function (index, dom) { console.log(index); console.log(dom); }); console.log('---------------------'); //3. $.each()很好的遍历数组 $.each(arr, function (index, ele) { console.log(index); console.log(ele); }); console.log('---------------------'); //4. $.each()遍历对象 $.each({ name: 'XingWei', age: 23 }, function (index, ele) { console.log(index); console.log(ele); }); }); </script> </body> </html>
复制
2. 元素操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="../jQuery.min.js"></script> </head> <body> <ul> <li>原先的li</li> </ul> <div class="test">原先的div</div> <p>我是段落</p> <!-- 1. $(); 2. append() / prepend(); // 向每个匹配的元素内部追加内容 3. after() / before(); // 在每个匹配的元素之后/之前插入内容 3. remove(); 4. empty(); --> <script> $(function () { // 1.创建元素: $('标签') var li = $("<li>动态创建的li</li>"); // 2.添加元素: // (1) 内部添加 append, prepend ; // $("ul").append(li); $("ul").prepend(li); $("p").append($("<span>HelloWorld</span>")); //将span追加到了p的内部的后面 $("p").prepend($("<span>Before, HelloWorld</span>")); //将span追加到了p的内部的前面(F12即可知道) // (2) 外部添加 after, before ; var div = $("<div>动态创建的div</div>"); // $(".test").after(div); $(".test").before(div); // 3.删除元素 // $("ul").remove(); // 删除自身 // $("ul").empty(); // 删除它的孩子 // $("ul").html(""); // 同上 }); </script> </body> </html>
复制
3. 尺寸
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> div { width: 200px; height: 200px; background-color: pink; padding: 10px; border: 15px solid red; margin: 20px; } </style> <script src="../jQuery.min.js"></script> </head> <body> <div></div> <!-- jQuery尺寸: 1. width() / height(): 只是 width, height; 2. innerWidth() / innerHeight(): 包含了 padding; 3. outerWidth() / outerHeight(): 包含了 padding + border; 4. outerWidth(true) / outerHeight(true): 包含了 padding + border + margin; --> <script> $(function() { // 1. width() / height() console.log($("div").width()); //200px // 2. innerWidth() / innerHeight() console.log($("div").innerWidth()); //220px // 3. outerWidth() / outerHeight() console.log($("div").outerWidth()); //250px // 4. outerWidth(true) / outerHeight(true) console.log($("div").outerWidth(true)); //290px }) </script> </body> </html>
复制
4. 位置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> * { margin: 0; padding: 0; } .father { width: 400px; height: 400px; background-color: pink; margin: 100px; overflow: hidden; position: relative; } .son { width: 150px; height: 150px; background-color: purple; position: absolute; left: 10px; top: 10px; } </style> <script src="../jQuery.min.js"></script> </head> <body> <div class="father"> <div class="son"></div> </div> <!-- 位置主要有3个: offset(), position(), scrollTop() / scrollLeft(); 1. offset(): 获取或设置被选择元素相对于文档的偏移量,与父级没有任何关系; (返回一个坐标对象) 获取匹配元素在当前视口的相对偏移; 2. position(): 获取(只能获取, 不能设置)被选择元素相对于带有定位的父级的偏移坐标, 如果父级都没有定位, 则以文档为主; --> <script> $(function() { // 1. 获取或设置距离文档的位置(偏移) offset console.log($(".son").offset()); console.log($(".son").offset().top); $(".son").offset({ // top: 200, // left: 200 }); // 2. 获取距离带有定位父级位置(偏移) position 如果没有带有定位的父级,则以文档为准 // 这个方法只能获取不能设置偏移 console.log($(".son").position()); // $(".son").position({ // top: 200, // left: 200 // }); //只是获取, 设置则无效 }) </script> </body> </html>
复制
5. scroll系列
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> body { height: 2000px; } .back { position: fixed; width: 50px; height: 50px; background-color: pink; right: 30px; bottom: 100px; display: none; } .container { width: 900px; height: 500px; background-color: skyblue; margin: 200px auto; } </style> <script src="../jQuery.min.js"></script> </head> <body> <div class="back">返回顶部</div> <div class="container"> </div> <!-- scrollTop() / scrollLeft(): scrollTop(): 获取匹配元素相对滚动条顶部的偏移; scrollLeft(): 获取匹配元素相对滚动条左侧的偏移; --> <script> $(function () { $(document).scrollTop(100); var boxTop = $(".container").offset().top; // console.log(boxTop); // 200 $(window).scroll(function () { // 页面滚动事件 console.log($(document).scrollTop()); // if ($(document).scrollTop() >= boxTop) { $(".back").fadeIn(); } else { $(".back").fadeOut(); } }); // 返回顶部按钮 $(".back").click(function () { // $(document).scrollTop(0); // 方式1-无动画 $("body, html").stop().animate({ // 方式2-动画 scrollTop: 0 }); // $(document).stop().animate({ // scrollTop: 0 // }); 不能是文档而是 html和body元素做动画, 这么写是错误的 }) }) </script> </body> </html>
复制