博客列表 >js学习:第20章 DOM操作与过滤器

js学习:第20章 DOM操作与过滤器

王小飞
王小飞原创
2020年05月30日 16:39:391323浏览

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>

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

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