ASCII码 ASCII码

访问器属性原理与获取DOM元素实践

发布于:2022-04-02 12:02:14  栏目:技术文档

访问器属性原理

先写一个常规的对象

  1. / /设置一个常规的类
  2. let userInfo={
  3. data:{
  4. name:'Jason',
  5. birthday:[2000,12,04],
  6. height:'1.75m',
  7. weight:'70kg'
  8. },
  9. // 获取姓名
  10. getName(){
  11. return this.data.name;
  12. },
  13. // 修改姓名
  14. ChangeName(name){
  15. if (name.length <= 20 ){
  16. this.data.name=name;
  17. }else{
  18. console.log('名字过长')
  19. }
  20. },
  21. // 获取年龄
  22. getAge(){
  23. return (2022-this.data.birthday[0])
  24. },
  25. // 获取身高
  26. getHeight(){
  27. return `${this.data.height[0]}${this.data.height[2]}${this.data.height[3]} cm`
  28. },
  29. // 修改身高
  30. SetHeight(height){
  31. return this.data.height=height;
  32. }
  33. }
  34. // 打印属性
  35. console.log(userInfo.data)
  36. console.log(userInfo.getAge())
  37. console.log(userInfo.getName())
  38. userInfo.SetHeight('1.80');
  39. console.log(userInfo.getHeight())
  40. userInfo.ChangeName('Authur')
  41. console.log(userInfo.getName())
  42. console.log(userInfo.data)

效果:

将对象方法改写成访问器属性

  1. // 设置一个常规的类
  2. let userInfo={
  3. data:{
  4. name:'Jason',
  5. birthday:[2000,12,04],
  6. height:'1.75m',
  7. weight:'70kg'
  8. },
  9. // 获取姓名
  10. // getName(){
  11. // return this.data.name;
  12. // },
  13. // 改写
  14. get Name(){
  15. return this.data.name;
  16. },
  17. // 修改姓名
  18. // ChangeName(name){
  19. // if (name.length <= 20 ){
  20. // this.data.name=name;
  21. // }else{
  22. // console.log('名字过长')
  23. // }
  24. // },
  25. // 改写
  26. set Name(name){
  27. if (name.length <= 20 ){
  28. this.data.name=name;
  29. }else{
  30. console.log('名字过长')
  31. }
  32. },
  33. // 获取年龄
  34. get Age(){
  35. return (2022-this.data.birthday[0])
  36. },
  37. // 获取身高
  38. get Height(){
  39. return `${this.data.height[0]}${this.data.height[2]}${this.data.height[3]} cm`
  40. },
  41. // 修改身高
  42. set Height(height){
  43. return this.data.height=height;
  44. }
  45. }
  46. // 打印属性
  47. console.log(userInfo.data);
  48. console.log(userInfo.Name);
  49. console.log(userInfo.Age);
  50. console.log(userInfo.Height);
  51. userInfo.Height='1.88';
  52. userInfo.Name='Authur';
  53. console.log(userInfo.data);
  54. console.log(userInfo.Name);
  55. console.log(userInfo.Age);
  56. console.log(userInfo.Height);

改写后效果不变:

获取DOM元素

DOM概念:DOM (Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口。也就是说把文档编译成了一个对象模型,例如我们写的html文件实际上是一个文档文件,通过我们的浏览器把它编译成了一个对象模型,这个模型就是document对象。

生成一个html

  1. <ul class="list">
  2. <li class="item"><button class="click">点我</button></li>
  3. <li class="item"><button class="click">点我</button></li>
  4. <li class="item"><button class="click">点我</button></li>
  5. <li class="item"><button class="click">点我</button></li>
  6. <li class="item"><button class="click">点我</button></li>
  7. <li class="item"><button class="click">点我</button></li>
  8. <li class="item"><button class="click">点我</button></li>
  9. </ul>

1、如何获取文档对象

console.dir(document);

效果:

2、如何拿到类名为click的button标签组

  1. // querySelectorAll(selector):返回一组元素
  2. // 这里将返回所有class为’click‘的标签
  3. console.dir(document.querySelectorAll('.click'))

效果:

这里传回的是一个数组,我们用常量来接收这个数组,就可在js中对button按钮进行设置

3、在js中对button标签进行样式设置

  1. const button = document.querySelectorAll('.click')
  2. for (let i =0 ;i < button.length;i++)
  3. {
  4. button[i].style.width='800px';
  5. button[i].style.margin='10px';
  6. }

效果:

相关推荐
阅读 +