博客列表 >基本的getter/setter、常用过滤器

基本的getter/setter、常用过滤器

,多思曩惜,
,多思曩惜,原创
2020年06月02日 13:47:27686浏览

基本的getter/setter

1. 属性操作

1.1 获取和设置 HTML 属性

  • attr():html属性进行操作
  • attr(name):getter
  • atter(name,value):setter
  1. var cl = console.log.bind(console);
  2. var form = $("form");
  3. // 查询表单form中action的值
  4. cl(form.attr("action"));
  5. // 改变form中action的值
  6. form.attr("action", "admin/check.php");
  7. cl(form.attr("action"));
  8. // 改变form中多值
  9. form.attr({
  10. action: "selec.php?id=4",
  11. method: "post",
  12. });
  13. // 使用回调来改变form的值
  14. form.attr("action", function () {
  15. // 动态设置处理脚本, 如果是get, query.php?id=1,如果非get, register.php
  16. // toLowerCase()转换为小写
  17. var method = $(this).attr("method").toLowerCase();
  18. return method === "get" ? "query.php?id=1" : "register.php";
  19. });
  20. cl(form.attr("action"));
  21. `

1.2 获取和设置 CSS 属性

  • css(): 获取的是元素的计算样式,设置的是内联样式,但不适用于复合样式,如margin
  • addClass(): 添加类样式
  • removeClass(): 移除类样式
  • toggleClass(): 自动切换类样式
  • hasClass(): 判断是否存在某个类样式

  • 原生获取表单元素form的高度:window.getComputedStyle(document.querySelector('form')).width

  • css()方法拿表单元素form的高度:cl(form.css("width"));
  1. // 2. css(): 针对 html元素的style属性进行操作
  2. // 不仅可以获取到style属性的值,还可以获取到该元素所有样式
  3. // 获取表单的长度
  4. cl(window.getComputedStyle(document.querySelector("form")).width);
  5. cl(form.css("width"));
  6. // 获取表单的边框
  7. cl(form.css("border"));
  8. form.css("border", "3px solid green");
  9. // 改变表单的部分样式
  10. form.css({
  11. backgroundColor: "wheat",
  12. border: "5px dashed blue",
  13. });
  14. form.css("background-color", function () {
  15. // 这是一有四个颜色值的数组, 目标是从这个数组中随机返回一个值
  16. var bgcolor = ["plum", "lightblue", "tan", "lime"];
  17. // 返回哪个值, 由一个随机索引决定, 索引必须在0 -3 之间
  18. var randomIndex = Math.floor(Math.random() * bgcolor.length);
  19. return bgcolor[randomIndex];
  20. });

1.3 获取和设置表单的值

  • val(): 获取和设置表单的值
  1. // 3. val():表单元素的值
  2. // 获取email的值
  3. cl($("#email").val());
  4. // 定义email的值
  5. $("#email").val("admin@php.cn");
  6. cl($("#email").val());
  7. // 获取选中按钮的值 cl($("input:radio[name=save]:checked").val());
  8. // 使用回调设置表单默认值
  9. $("#email").val(function () {
  10. return this.defaultValue;
  11. });

1.4 获取和设置元素的内容

  • text(): 获取和设置元素的文本内容
  • html(): 获取和设置元素的 html 内容
  1. // html()能代替text()
  2. // innerText ===> text();
  3. document.querySelector("h2").innerText = "请登录1";
  4. $("h2").text("登录");
  5. // innerHTML ===> html()
  6. document.querySelector("h2").innerHTML =
  7. '<span style="color:blue">请登录2</span>';
  8. $("h2").html('<span style="color:green">请登录3</span>');
  9. $("h2").html("请登录4");
  • 1.5 获取和设置元素的位置与宽高

  • offset(): 获取元素的位置信息

  • scrollTop(),scrollLeft():获取元素滚动条位置
  1. var cl = console.log.bind(console);
  2. // 原生获取表单
  3. var form = document.forms.item(0);
  4. // jquery来完成获取表单
  5. // var form = $("form");
  6. // 获取表单的坐标
  7. var domRect = form.getBoundingClientRect();
  8. // cl(domRect);
  9. cl(domRect.top, domRect.left);
  10. // jquery来完成
  11. var position = $(form).offset();
  12. cl(position);
  13. cl(position.top);
  14. cl(position.left);
  15. position.top += 50;
  16. cl(position);
  17. // 获取滚动条的位置
  18. // document.documentElement.style.width = "2000px";
  19. // 返回滚动条位置
  20. // $(document).on("scroll", function () {
  21. // cl($(document).scrollLeft());
  22. // });

1.6 获取和设置元素中的数据

  • data(): 获取和设置元素中的数据
  • removeData(): 从元素中删除数据

2. DOM 操作

2.1 插入与替换元素

  • append() | appendTo(): 尾部插入元素
  • prepend() | prependTo(): 头部插入元素
  • after() | insertAfter(): 后面插入元素
  • befor() | insertBefor(): 前面插入元素
  • replaceWidh() | replaceAll(): 替换目标元素内容
  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>Document</title>
  8. <style>
  9. .active{
  10. color :red;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. </body>
  16. </html>
  17. <script>
  18. var cl = console.log.bind(console);
  19. // 元素插入和替换
  20. // 在body添加ol元素
  21. // 父级元素.append(子元素)
  22. $("body").append("<ol>");
  23. // 子元素.annendTo父元素
  24. $('<li>').text('笔记本电脑').appendTo("ol");
  25. $('<li>').addClass("active").text("手机").appendTo('ol');
  26. $('<li>',{
  27. id:"hello",
  28. style:'background-color:yellow',
  29. }).html("<a href=''>....</a>").appendTo('ol');
  30. // 使用回调函数,一次添加多个元素
  31. $('ol').append(function(){
  32. var res='';
  33. for (var i=0 ; i<5;i++ ){
  34. res += "<li><a href=''>zzz" + ( i + 1 ) + "</a></li>";
  35. }
  36. return res;
  37. });
  38. // 在第三个元素前面添加<li>,before(),在某个元素之前添加
  39. $("ol > li:nth-of-type(3)").before('<li>新</li>');
  40. // 在第四个元素后面面添加<li>insertAfter(),在某个元素之后添加
  41. $('<li>新元素2</li>').insertAfter("ol >li:nth-of-type(4)");
  42. // prepend(), prependTo(), 将新元素插入到头部
  43. $('<li>留言</li>').prependTo("ol");
  44. // replaceWith()元素替换
  45. $("ol > li:last-of-type").replaceWith("<h3>php</h3>");
  46. $('<p>hello</p>').replaceAll("ol>li:first-of-type");
  47. </script>

2.2 复制元素

  • clone(): 创建并返回每一个选中元素的副本
  • clone() 方法生成被选元素的副本,包含子节点、文本和属性。
  • $(selector).clone(true|false)

2. 删除元素

  • empty(): 方法移除被选元素的所有子节点和内容。
  • remove():remove() 方法移除被选元素,包括所有的文本和子节点。该方法也会移除被选元素的数据和事件。

filter过滤器

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

总结:

  • 学会基本的getter/setter的操作,但是代码熟练度不够,需要多练习。
  • 在js中元素选择器和过滤器的了解并使用。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议