博客列表 >jQuery - DOM 操作与过滤器

jQuery - DOM 操作与过滤器

晴天
晴天原创
2020年05月29日 16:28:55886浏览

jQuery - DOM 操作与过滤器

1. getter 与 setter 操作

  • css(): 针对 html 元素的 style 属性进行操作
  • val() 获取表单元素的值
  • html(可以加标签或者文本) text(只能加纯文本 标签会原样输出) : 元素内容操作
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="jquery-3.5.1.js"></script>
  8. <style>
  9. body {
  10. display: flex;
  11. flex-direction: column;
  12. align-items: center;
  13. color: #666;
  14. }
  15. form {
  16. width: 400px;
  17. /* height: 150px; */
  18. padding: 20px 10px;
  19. border: 1px solid #aaa;
  20. box-shadow: 0 0 5px #888;
  21. box-sizing: border-box;
  22. background-color: #eee;
  23. display: grid;
  24. grid-template-columns: 80px 200px;
  25. gap: 10px;
  26. place-content: center center;
  27. }
  28. button {
  29. grid-column: 2 / 3;
  30. height: 26px;
  31. }
  32. button:hover {
  33. color: white;
  34. background-color: #888;
  35. border: none;
  36. cursor: pointer;
  37. }
  38. .red {
  39. color: red;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <h2 class="red">用户登录</h2>
  45. <form action="handle.php" method="POST">
  46. <label for="email">Email:</label>
  47. <input
  48. type="email"
  49. name="email"
  50. id="email"
  51. autofocus
  52. value="leture999@php.cn"
  53. />
  54. <label for="password">Password:</label>
  55. <input type="password" name="password" id="password" value="不少于6位" />
  56. <label for="confirm">记住我:</label>
  57. <div>
  58. <input type="radio" name="save" id="confirm" value="1" checked /><label
  59. for="confirm"
  60. >保存</label
  61. >
  62. <input type="radio" name="save" id="cancel" value="0" /><label
  63. for="cancel"
  64. >放弃</label
  65. >
  66. </div>
  67. <button>登录</button>
  68. </form>
  69. </body>
  70. <script>
  71. var cl = console.log.bind(console);
  72. // css(): 针对 html元素的style属性进行操作
  73. // 不仅可以获取到style属性的值,还可以获取到该元素所有样式
  74. var form = $("form");
  75. // getter 获取
  76. // 拿到form宽度
  77. cl(form.css("width")); // 400px
  78. // 拿到form边框
  79. cl(form.css("border")); //1px solid rgb(170, 170, 170)
  80. // setter 修改
  81. // 修改;border
  82. form.css("border", "5px solid blue");
  83. cl(form.css("border")); //5px solid rgb(0, 0, 255)
  84. // 修改多个值传对象字面量
  85. form.css({
  86. border: "5px solid red",
  87. color: "blue",
  88. });
  89. // 一个简单小案例 随机背景色 css 第二个值传回调函数
  90. form.css("background-color", function () {
  91. // 由背景颜色组成一个数组
  92. var bgc = ["red", "blue", "lightpink", "wheat"];
  93. // 取随机数
  94. // Math.floor 向下取整 Math.random() 取0-1随机数
  95. var rad = Math.floor(Math.random() * bgc.length);
  96. return bgc[rad];
  97. });
  98. // val() 获取表单元素的值
  99. // 拿到email的值
  100. cl($("#email").val()); //leture999@php.cn
  101. // 修改email值
  102. $("#email").val("123@123.123");
  103. cl($("#email").val()); // 123@123.123
  104. // 拿到单选框的值
  105. cl($("input:radio[name=save]:checked").val());
  106. // 支持回调
  107. $("#email").val(function () {
  108. // 返回一下默认值
  109. return this.defaultValue;
  110. });
  111. cl($("#email").val());
  112. // html(可以加标签或者文本) text(只能加纯文本 标签会原样输出) : 元素内容操作
  113. // text ===》 innertext
  114. // 修改一下h2的值
  115. $("h2").text("注册"); //注册
  116. // html ===》 innerHTML
  117. $("h2").html("<span style = 'color:blue'>请登录i</span>");
  118. var cl = console.log.bind(console);
  119. var form = document.forms.item(0);
  120. // 获取元素相对于浏览器视窗的位置;
  121. var donRect = form.getBoundingClientRect();
  122. cl(donRect);
  123. // 上间距
  124. cl(donRect.top);
  125. // 左间距
  126. cl(donRect.left);
  127. // jQuery完成
  128. var position = $("form").offset();
  129. cl(position);
  130. // 获取滚动条位置
  131. // 先把窗口调宽点
  132. // $("html").css("width", "2000px");
  133. // $(document).on("scroll", function () {
  134. // cl($(document).scrollLeft());
  135. // });
  136. // 自定义数据属性
  137. // form 加个data值
  138. $("form").data("desc", "login");
  139. // 查询有没有
  140. cl($("form").data("desc")); //login
  141. // 删除
  142. $("form").removeData("desc");
  143. // 查询有没有
  144. cl($("form").data("desc")); //undefined
  145. </script>
  146. </html>

2. DOM 操作

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <script src="jquery-3.5.1.js"></script>
  7. <title>DOM</title>
  8. <style>
  9. .active {
  10. color: red;
  11. }
  12. </style>
  13. </head>
  14. <body></body>
  15. </html>
  16. <script>
  17. var cl = console.log.bind(console);
  18. // 1.元素的插入与替换, 父元素.append(子元素)
  19. // 插入 p 标签
  20. $("body").append("<ol>");
  21. // 子元素.appendTo(父元素)
  22. $("<li>").text("php中文网").appendTo("ol");
  23. // 加class
  24. $("<li>").addClass("active").text("中文php").appendTo("ol");
  25. // 加属性
  26. $("<li>", {
  27. id: "php",
  28. style: "background-color:red",
  29. })
  30. .text("hello word")
  31. .appendTo("ol");
  32. </script>

  1. // append(callback)
  2. $("ol").append(function () {
  3. var res = [];
  4. // 添加多个商品
  5. for (var i = 0; i < 5; i++) {
  6. res += "<li>商品" + i + "</li>";
  7. }
  8. return res;
  9. });

  1. // before(), 在某个元素之前添加
  2. // 在第三个前面添加
  3. $("ol > li:nth-of-type(3)").before("<li>新商品1</li>");
  4. // insertAfter() 在某个元素之后添加
  5. // 在第四个后面;
  6. $("<li>新商品2</li>").insertAfter("ol > li:nth-of-type(4)");
  7. // 将新元素插入到头部 prependTo(),prepend()
  8. $("<li>最欣赏商品</li>").prependTo("ol");
  9. $("ol").prepend("<li>最最最新商品</li>");

  1. // 替换元素 replaceWith() replaceAll()
  2. // 将第一个li换掉
  3. $("ol > li:first-of-type").replaceWith("<h2>hello php</h2>");
  4. // 将最后一个 换掉
  5. $("<h2>php中文网</h2>").replaceAll("ol > li:last-of-type");

3.常用过滤器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <script src="jquery-3.5.1.js"></script>
  7. <title>常用过滤器</title>
  8. </head>
  9. <body>
  10. <ul id="first">
  11. <li>item1</li>
  12. <li>item2</li>
  13. <ul>
  14. <li>item1</li>
  15. <li class="red">item2</li>
  16. <li>item3</li>
  17. </ul>
  18. <li>item3</li>
  19. <li>item4</li>
  20. <li>item5</li>
  21. </ul>
  22. <ul id="second">
  23. <li>item1</li>
  24. <li>item2</li>
  25. <li>item3</li>
  26. <li>item4</li>
  27. <li>item5</li>
  28. </ul>
  29. </body>
  30. </html>
  31. <script>
  32. var cl = console.log.bind(console);
  33. // filter()
  34. // 获取first列表
  35. // 普通操作
  36. cl($("ul#first"));
  37. // 过滤器
  38. cl($("ul").filter("#first"));
  39. // children
  40. var ul1 = $("ul").filter("#first");
  41. cl(ul1.children());
  42. var children = ul1.children();
  43. // 修改第一个背景
  44. children.first().css("background", "red");
  45. // 最后一个
  46. children.last().css("background", "red");
  47. // 任何一个
  48. children.eq(3).css("background", "red");
  49. // children()只限子元素
  50. // find() 所有层级元素
  51. ul1.find(".red").css("color", "red");
  52. cl(ul1.find(".red"));
  53. // slice()
  54. // 仅获取item2中的23
  55. $("ul#second").children().slice(1, 3).css("color", "red");
  56. // 用css选择器 获取234
  57. $("ul#second > li:nth-of-type(-n+4):not(:first-of-type)").css(
  58. "color",
  59. "blue"
  60. );
  61. </script>

4. 总结

熟练使用css选择器完全可以忽略掉过滤器

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议