Blogger Information
Blog 62
fans 7
comment 2
visits 58135
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
jQuery的getter和setter
我是郭富城
Original
654 people have browsed it

jQuery的getter和setter

jQuery对象上最简单、最常见的操作是获取(get)或设置(set)HTML属性、CSS样式、元素内容和位置高宽的值。jQuery使用同一个方法既当getter用又做setter用,而不是定义一对方法。如果传入一个新值给该方法,则它设置此值;如果没指定值,则它返回当前值。

1. 常用的getter / setter

  • 1.attr()方法是jQuery中用于HTML属性的getter/setter。一个相关函数是removeAttr()。
  1. var form = $("form");
  2. // 1. attr(): html属性进行操作
  3. // attr(name):  getter
  4. // attr(name, value): setter
  5. cl(form.attr("action"));
  6. form.attr("action", "admin/check.php");
  7. cl(form.attr("action"));
  8. form.attr({
  9. action: "selec.php?id=4",
  10. method: "post",
  11. });
  • 2.css()方法和attr()方法很类似,只是css()方法作用于元素的css样式,而不是元素的HTML属性。
  1. // 不仅可以获取到style属性的值,还可以获取到该元素所有样式
  2. cl(window.getComputedStyle(document.querySelector("form")).width);
  3. cl(form.css("width"));
  4. cl(form.css("border"));
  5. form.css("border", "3px solid green");
  6. form.css({
  7. backgroundColor: "wheat",
  8. border: "5px dashed blue",
  9. });
  10. form.css("background-color", function () {
  11. // 这是一有四个颜色值的数组, 目标是从这个数组中随机返回一个值
  12. var bgcolor = ["plum", "lightblue", "tan", "lime"];
  13. // 返回哪个值, 由一个随机索引决定, 索引必须在0 -3 之间
  14. var randomIndex = Math.floor(Math.random() * bgcolor.length);
  15. return bgcolor[randomIndex];
  16. });
  • 3.addClass()和removeClass()用来从选中元素中添加和删除类。toggleClass()的用途是:当元素还没有某些类时,给元素添加这些类;反之,则删除。

  • 4.hasClass()用来判断某类是否存在。

  • 5.val()方法用来设置和获取HTML表单元素的value属性,还可用于获取和设置复选框、单选按钮以及<select>元素的选中状态。

  1. // 5. val():表单元素的值
  2. cl($("#email").val());
  3. $("#email").val("zhulaoshi@php.cn");
  4. cl($("#email").val());
  5. // 获取选中按钮的值
  6. cl($("input:radio[name=save]:checked").val());
  7. // 回调
  8. $("#email").val(function () {
  9. return this.defaultValue;
  10. });
  • 6.text()和html()方法用来获取和设置元素的纯文本或HTML内容。
  1. // 6. html()/text(): 元素内容操作
  2. // innerText ===> text();
  3. document.querySelector("h2").innerText = "请登录";
  4. $("h2").text("赶紧登录");
  5. // innerHTML ===> html()
  6. document.querySelector("h2").innerHTML =
  7. '<span style="color:blue">请登录</span>';
  8. $("h2").html('<span style="color:green">请登录</span>');
  9. $("h2").html("请登录");
  • 7.offset()方法可以获取或设置元素的位置。position()方法很像offset()方法,但它只能用作getter,它返回的元素位置是相对于其偏移父元素的,而不是相对于文档的。width()和height()方法返回基本的宽度和高度,不包含内边距、边框和外边距。innerWidth()和innerHeight()返回元素的宽度和高度,包含内边距的宽度和高度。outerWidth()和outerHeight()通常返回的是包含元素外边距的尺寸。
  1. var cl = console.log.bind(console);
  2. var form = document.forms.item(0);
  3. var domRect = form.getBoundingClientRect();
  4. // cl(domRect);
  5. cl(domRect.top, domRect.left);
  6. // jquery来完成
  7. var position = $(form).offset();
  8. cl(position);
  9. cl(position.top);
  10. cl(position.left);
  11. position.top += 50;
  12. cl(position);
  • 8.data()可用来设置或获取与文档元素、document或window对象关联的数据。
  1. // 获取滚动条的位置
  2. // document.documentElement.style.width = "2000px";
  3. // $(document).on("scroll", function () {
  4. // cl($(document).scrollLeft());
  5. // });
  6. // 自定义数据属性
  7. $(form).data("desc", "login-form");
  8. cl($(form).data("desc"));
  9. $(form).removeData("desc");
  10. cl($(form).data("desc"));

2. 总结

用做setter时,这些方法会给jQuery对象中的每一个元素设置值,然后返回该jQuery对象以方便链式调用。用做getter时,这些方法只会查询元素集中的第一个元素,返回单个值。(如果要遍历所有元素,请使用map()。)getter不会返回调用自身的jQuery对象,因此它只能出现在链式调用的末尾。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:jQuery中的map等方法,是对原生的封装, 只是提供了大多数常用的功能,适合部分场景, 一些特殊场景下的使用方式, 还是要看原生手册解决的, 这个在开发过程中, 要注意
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