博客列表 >JQ:DOM操作与过滤器

JQ:DOM操作与过滤器

楷
原创
2020年06月01日 23:16:581009浏览

1.getter

1.1 attr(): html属性进行操作

  1. attr(name):  getter
  2. attr(name, value): setter
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>gettersetter - 1</title>
  9. <script src="lib/jquery-3.5.1.js"></script>
  10. </head>
  11. <style>
  12. body{
  13. display: flex;
  14. flex-direction: column;
  15. align-items: center;
  16. }
  17. form{
  18. width: 350px;
  19. /* height: 150px; */
  20. border: 1px solid #aaa;
  21. padding: 20px 10px;
  22. background-color: cyan;
  23. box-shadow: 0 0 5px #aaa;
  24. box-sizing: border-box;
  25. border-radius: 5px;
  26. display: grid;
  27. grid-template-columns: 60px 200px;
  28. place-content: center center;
  29. gap: 5px;
  30. }
  31. button:hover{
  32. color:white;
  33. background-color: #888;
  34. border: none;
  35. cursor: pointer;
  36. }
  37. </style>
  38. <body>
  39. <h3>用户登录</h3>
  40. <form action="handle.php" method="post">
  41. <label for="">邮箱</label>
  42. <input type="email" name="email" id="email" value = "abc@php.cn" autofocus required >
  43. <label for="">密码</label>
  44. <input type="password" name="password" id="password" value = "不少于八位密码" required>
  45. <label for="">记住我</label>
  46. <div>
  47. <input type="radio" name="save" id="confirm" value="1"><label for="" checked>保存</label>
  48. <input type="radio" name="save" id="cancel" value="0"><label for="">放弃</label>
  49. </div>
  50. <button>提交</button>
  51. </form>
  52. </body>
  53. </html>
  54. <script>
  55. var cl = console.log.bind(console);
  56. // 1. attr(): html属性进行操作
  57. // attr(name):  getter
  58. // attr(name, value): setter
  59. var inputs = $("input");
  60. cl(inputs.attr("name"));
  61. inputs.attr("value","peter@qq.com");
  62. </script>

实例效果:

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

不仅可以获取到style属性的值,还可以获取到该元素所有样式
<script>
// 2. css(): 针对 html元素的style属性进行操作
// 原生
cl(window.getComputedStyle(document.querySelector(“form”)).width);
// JQ
var forms = $(“form”);
cl(forms.css(“width”));
forms.css({
backgroundColor:”wheat”,
})
inputs.css(“background-color” , “cyan”);

  1. // 这是一个每次刷新随机返回表单背景色的实例
  2. forms.css("background-color",function(){
  3. // 这是一有多个颜色值的数组, 目标是从这个数组中随机返回一个值
  4. var bgcolor = ["wheat","cyan","pink","tan","lime"];
  5. // 返回哪个值, 由一个随机索引决定, 索引必须在0 -3 之间
  6. var rndcolorindex = Math.floor(Math.random() * bgcolor.length);
  7. return bgcolor[rndcolorindex];
  8. });
  9. </script>

实例效果:

1.3 val():表单元素的值

  1. <script>
  2. // 3. val():表单元素的值
  3. cl($("#email").val());
  4. $("#email").val("andy@qq.com");
  5. // 获取选中按钮的值
  6. cl($("input:radio[name=save]:checked").val());
  7. // 回调返回默认值
  8. $("#email").val(function(){
  9. return this.defaultValue;
  10. });
  11. </script>

实例效果:

1.4 html()/text(): 元素内容操作

  1. <script>
  2. // 4. html()/text(): 元素内容操作
  3. // innerText ===> text();
  4. // 原生
  5. // document.querySelector("h2").innerHtml = '<span style="color:red">请登录</span>';
  6. // jQuery
  7. // $("h3").text("请登录");
  8. $("h3").html('<span style="color:red">LOGIN IN</span>');
  9. </script>

实例效果:

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. <title>常用的DOM操作</title>
  7. <script src="lib/jquery-3.5.1.js"></script>
  8. </head>
  9. <body>
  10. </body>
  11. </html>
  12. <script>
  13. var cl = console.log.bind(console);
  14. // 1. 元素的插入与替换, 父元素.append(子元素)
  15. $("body").append("<ol>");
  16. $("<li>").text("手提电脑").appendTo("ol");
  17. $("ol").append("<li>激光电视");
  18. $("<li>").addClass("active").text("智能5G手机").appendTo("ol");
  19. $("<li>",{
  20. id:"news",
  21. style:"background-color:cyan",
  22. })
  23. .html("<a href=''>最新商品1</a>")
  24. .appendTo("ol");
  25. // append(callback)
  26. $("ol").append(function(){
  27. var res = "";
  28. for(var i=0; i <=5; i++){
  29. res += "<li>最新商品"+(i+2);
  30. }return res;
  31. });
  32. // 从第3个元素前面添加<li>, before(), 在某个元素之前添加
  33. $("ol>li:nth-of-type(3)").before("<li>VR游戏机</li>");
  34. // insertAfter()
  35. $("<li>北斗导航仪</li>").insertAfter("ol>li:nth-of-type(5)");
  36. // prepend(), prependTo(), 将新元素插入到头部
  37. $("<li>最新潮流</li>").prependTo("ol");
  38. // 元素的换: replaceWith()
  39. $("ol>li:last-of-type").replaceWith("<h4>This is The END!</h4>");
  40. $("<p>This is Begin...</p>").replaceAll("ol > li:first-of-type");
  41. </script>

实例效果:

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. <title>过滤器</title>
  7. <script src="lib/jquery-3.5.1.js"></script>
  8. </head>
  9. <body>
  10. <ul id="first">
  11. <li>item1</li>
  12. <li>item2</li>
  13. <li>item3</li>
  14. <li>item4</li>
  15. <li>item5</li>
  16. </ul>
  17. <ul id="second">
  18. <li>item1</li>
  19. <li>item2</li>
  20. <li>item3</li>
  21. <li>item4</li>
  22. <li>item5</li>
  23. </ul>
  24. </body>
  25. </html>
  26. <script>
  27. var cl = console.log.bind(console);
  28. //方法 children
  29. var ul1 = $("ul").filter("#first");
  30. var childrens = ul1.children();
  31. // first():返回第一个
  32. childrens.first().css("background", "lightblue");
  33. // last(): 返回最后一个
  34. childrens.last().css("background", "lightgreen");
  35. // eq(n): 返回任何一个
  36. childrens.eq(2).css("background", "lightcyan");
  37. // 仅获取第2个和第3个子元素
  38. $("ul#second >li:nth-of-type(-n+3):not(li:first-of-type)").css(
  39. "color",
  40. "red"
  41. );
  42. </script>

实例效果:

总结:

  1. 常用的getter / setter
  2. 常用的DOM操作方法:
    .append(“<ol>“)、.appendTo(“ol”)、.append(callback)
    .before()、.insertAfter()、.prepend()、.prependTo()
    .replaceWith()、..replaceAll()
    3.过滤器:筛选器,缩小寻找范围。
    方法 children()、first()、last()、eq()
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议