Blogger Information
Blog 52
fans 0
comment 3
visits 42315
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
js学习:第20章 DOM操作与过滤器
王小飞
Original
1320 people have browsed it

1. attr(): html属性进行操作

  1. attr(name):  getter 查询
  2. attr(name, value): setter 设置

attr(name):  getter 查询的代码与效果:

attr(name, value): setter 设置的代码与效果:

2. css(): 针对 html元素的style属性进行操作

不仅可以获取到style属性的值,还可以获取到该元素所有样式并修改

动态设置,每次访问都会显示不同的背景

3. val():表单元素的值

4. 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. <script src="lib/jquery-3.5.1.js"></script>
  7. <title>基本的getter/setter-1</title>
  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. <script>
  70. var cl = console.log.bind(console);
  71. var form = $("form");
  72. // 1. attr(): html属性进行操作
  73. // attr(name):  getter 查询
  74. // cl(form.attr("action"));
  75. // attr(name, value): setter 设置
  76. // form.attr("action", "beixiugai/wenjian.php");
  77. // cl(form.attr("action"));
  78. // form.attr({
  79. // action: "selec.php?id=4",
  80. // method: "post",
  81. // });
  82. // form.attr("action", function () {
  83. // 动态设置处理脚本, 如果是get, query.php?id=1,如果非get, register.php
  84. // var method = $(this).attr("method").toLowerCase();
  85. // return method === "get" ? "query.php?id=1" : "register.php";
  86. // });
  87. // 2. css(): 针对 html元素的style属性进行操作
  88. // 不仅可以获取到style属性的值,还可以获取到该元素所有样式
  89. // cl(window.getComputedStyle(document.querySelector("form")).width);
  90. // cl(form.css("width"));
  91. // cl(form.css("border"));
  92. // form.css("border", "3px solid green");
  93. // form.css({
  94. // backgroundColor: "wheat",
  95. // border: "5px dashed blue",
  96. // });
  97. // form.css("background-color", function () {
  98. // 这是一有四个颜色值的数组, 目标是从这个数组中随机返回一个值
  99. // var bgcolor = ["plum", "lightblue", "tan", "lime"];
  100. // 返回哪个值, 由一个随机索引决定, 索引必须在0 -3 之间
  101. // var randomIndex = Math.floor(Math.random() * bgcolor.length);
  102. // return bgcolor[randomIndex];
  103. // });
  104. // 3. val():表单元素的值
  105. // cl($("#email").val());
  106. // $("#email").val("xinzhi@php.cn");
  107. // cl($("#email").val());
  108. // 获取选中按钮的值
  109. // cl($("input:radio[name=save]:checked").val());
  110. // 回调
  111. // $("#email").val(function () {
  112. // return this.defaultValue;
  113. // });
  114. // 4. html()/text(): 元素内容操作
  115. // innerText ===> text();
  116. document.querySelector("h2").innerText = "请登录";
  117. $("h2").text("赶紧登录");
  118. // innerHTML ===> html()
  119. // document.querySelector("h2").innerHTML =
  120. // '<span style="color:blue">请登录</span>';
  121. // $("h2").html('<span style="color:green">请登录</span>');
  122. // $("h2").html("请登录");
  123. </script>
  124. </body>
  125. </html>

2.dom操作

插入操作

append(callback) 插入一个列表

选择目标位置插入:

课程代码:

  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="lib/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. $("body").append("<ol>");
  20. // 子元素.appendTo(父元素)
  21. $("<li>").text("笔记本电脑").appendTo("ol");
  22. $("<li>").addClass("active").text("智能手机").appendTo("ol");
  23. $("<li>", {
  24. id: "hello",
  25. style: "background-color:yellow",
  26. })
  27. .html("<a href=''>格子衫</a>")
  28. .appendTo("ol");
  29. // append(callback);
  30. $("ol").append(function () {
  31. var res = "";
  32. for (var i = 0; i < 5; i++) {
  33. res += "<li><a href=''>最新商品" + (i + 1) + "</a></li>";
  34. }
  35. return res;
  36. });
  37. // 从第3个元素前面添加<li>, before(), 在某个元素之前添加
  38. $("ol > li:nth-of-type(3)").before("<li>我是从第3个元素前面添加新元素</li>");
  39. // insertAfter();
  40. $("<li>我是从第5个元素后面添加新元素2</li>").insertAfter(
  41. "ol > li:nth-of-type(4)"
  42. );
  43. // prepend(), prependTo(), 将新元素插入到头部
  44. $("<li>最新留言</li>").prependTo("ol");
  45. // 元素的换: replaceWith()
  46. $("ol > li:last-of-type").replaceWith("<h3>Hello PHP.CN</h3>");
  47. $("<p>Hello World...</p>").replaceAll("ol > li:first-of-type");
  48. </script>

过滤器

课程代码:

  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="lib/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. <script>
  31. var cl = console.log.bind(console);
  32. // cl($("ul#first"));
  33. // cl($("ul").filter("#first"));
  34. // children
  35. var ul1 = $("ul").filter("#first");
  36. cl(ul1.children());
  37. var children = ul1.children();
  38. // first():第一个
  39. children.first().css("background", "lightblue");
  40. // last(): 最后一个
  41. children.last().css("background", "lightblue");
  42. // eq(n): 返回任何一个
  43. children.eq(2).css("background", "lightgreen");
  44. // children()只限子元素
  45. ul1.children(".red").css("color", "red");
  46. // find(): 所有层级在查询
  47. ul1.find(".red").css("color", "red");
  48. cl(ul1.find(".red"));
  49. // 仅获取第2个和第3个子元素
  50. $("ul").filter("#second").children().slice(1, 3).css("color", "red");
  51. $("ul#second >li:nth-of-type(-n+3):not(li:first-of-type)").css(
  52. "color",
  53. "red"
  54. );
  55. </script>
  56. </html>

总结:学习了查询操作,插入操作,和过滤器

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:很好, 请在6月10日前全部完成
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