Blogger Information
Blog 47
fans 1
comment 0
visits 53024
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
jQuery - DOM 操作与过滤器
晴天
Original
885 people have browsed it

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选择器完全可以忽略掉过滤器

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:同一个功能有多种实现方案的时候, 特别让人纠结, 总想用一种最好的, 结果时间都耽误到了选择中....
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post