博客列表 >构造函数原型|对象原型|获取dom元素| dom元素的增删改查

构造函数原型|对象原型|获取dom元素| dom元素的增删改查

幸福敲门的博客
幸福敲门的博客原创
2021年01月07日 14:01:41575浏览

举例说明构造函数的原型与对象原型之间的区别与联系;
举例演示获取dom元素的常用方法;
dom元素的增删改查常用操作,全部实例演示,并配图

一、构造函数的原型与对象原型

  1. <script>
  2. function f1() {}
  3. console.dir(f1);
  4. // 声明一个构造函数
  5. function User(name, age,sex) {
  6. // 1. 创建出一个新对象,用this来表示(伪代码,系统自动创建并执行)
  7. // const this = new User;
  8. // 2.初始化对象,给这个对象添加一个自定义属性,用来和其它实例进行区分
  9. this.name = name;
  10. this.age = age;
  11. this.sex = sex;
  12. // 3. 返回这个对象
  13. // return this;
  14. }
  15. const user = new User("黄蓉", 18,"girl");
  16. console.log(user instanceof User);
  17. console.log(user);
  18. user.__proto__.salary = 3600;
  19. console.log(user.salary);
  20. const user1 = new User("郭靖", 20,"boy");
  21. console.log(user1);
  22. // console.log(user1.salary);
  23. console.dir(User);
  24. // 实例的原型永远指向它的构造函数的原型,实例的原型从构造函数的原型继承成员(属性/方法)
  25. console.log(user1.__proto__ === User.prototype);
  26. // 需要被所有类实例共享的成员,应该写到构造函数的原型上
  27. User.prototype.nation = "CHINAMADE";
  28. console.log(user.nation, user1.nation);
  29. // 属性通常不应该共享的,它是区分不同对象的标志,方法更适合共享
  30. User.prototype.show = function () {
  31. return { name: this.name, age: this.age, sex: this.sex };
  32. };
  33. console.log(user.show());
  34. console.log(user1.show());
  35. </script>

图示:
构造函数的原型与对象原型

二、获取dom元素的常用方法

css 选择器
document.querySelectorAll() 获取满足条件的所有元素
document.querySelector() 获取满足条件的第一个元素
传统方法
document.getElementById()
document.getElementsByTagName()
document.getElementsByName()
document.getElementsByClassName()
快捷方式
html: document.documentElement
head: document.head
body: document.body
title: document.title
forms
document.forms[0]
document.forms.item(0)
images
document.images
anchors
document.anchors

css 选择器获取满足条件的所有元素实例

  1. <body>
  2. <ul id="list">
  3. <li class="items">items10</li>
  4. <li class="items">items20</li>
  5. <li class="items">items30</li>
  6. <li class="items">items40</li>
  7. <li class="items">items50</li>
  8. <li class="items">items60</li>
  9. <li class="items">items70</li>
  10. <li class="items">items80</li>
  11. </ul>
  12. <script>
  13. // 使用css选择器是最直观的
  14. // 1. 获取满足条件的所有元素
  15. const lis = document.querySelectorAll("#list li");
  16. console.log(lis);
  17. </script>
  18. </body>

图示:
css 选择器获取满足条件的所有元素

获取满足条件的第一个元素

  1. <script>
  2. first = document.querySelector("#list li");
  3. console.log(first);
  4. </script>

图示:
获取满足条件的第一个元素

三、dom元素的增删改

3.1dom元素的增

  1. <body>
  2. <ul id="list">
  3. <li class="items">items10</li>
  4. <li class="items">items20</li>
  5. <li class="items">items30</li>
  6. <li class="items">items40</li>
  7. <li class="items">items50</li>
  8. <li class="items">items60</li>
  9. <li class="items">items70</li>
  10. <li class="items">items80</li>
  11. </ul>
  12. <script>
  13. const ul = document.querySelector("#list");
  14. // 1. 创建元素
  15. const li = document.createElement("li");
  16. // parent.appendChild(newEl),添加到页面
  17. ul.appendChild(li);
  18. li.innerText = "items90";
  19. // li.innerHTML = '<i style="color:red">items60</i>';
  20. let htmlStr = "<li style='color:red'>items90</li>";
  21. </script>
  22. </body>

图示:
dom元素的增
dom元素的增加多个

  1. const ul = document.querySelector("#list");
  2. const frag = new DocumentFragment();
  3. for (let i = 0; i < 5; i++) {
  4. const li = document.createElement("li");
  5. li.textContent = "Hello " + (i + 1);
  6. // 将生成的节点先临时挂载到文档片断中
  7. frag.appendChild(li);
  8. }
  9. ul.appendChild(frag);`

3.2dom元素的改:

  1. <body>
  2. <ul id="list">
  3. <li>item1</li>
  4. <li>item2</li>
  5. <li>item3</li>
  6. <li>item4</li>
  7. <li>item5</li>
  8. </ul>
  9. <script>
  10. let h2 = document.createElement("h2");
  11. h2.innerHTML = "石家庄,加油!";
  12. document.querySelector("li:nth-of-type(4)").replaceWith(h2);
  13. ul.replaceChild(h2, document.querySelector("li:last-of-type"));
  14. </script>
  15. </body>

图示:
dom元素的改
3.3dom元素的删

  1. <body>
  2. <ul id="list">
  3. <li class="item">item1</li>
  4. <li class="item">item2</li>
  5. <li class="item">item3</li>
  6. <li class="item">item4</li>
  7. <li class="item">item5</li>
  8. <li class="item">item6</li>
  9. <li class="item">item7</li>
  10. <li class="item">item8</li>
  11. </ul>
  12. <script>
  13. const ul = document.querySelector("#list");
  14. ul.removeChild(document.querySelector('#list>.item:nth-of-type(5)'));
  15. </script>
  16. </body>

图示:
dom元素的删

3.4dom元素的查

  1. // 获取所有子元素
  2. console.log(ul.children);
  3. // 获取子元素数量
  4. console.log(ul.children.length);
  5. console.log(ul.childElementCount);
  6. // 第一个子元素
  7. console.log(ul.firstElementChild);
  8. // 最后一个
  9. console.log(ul.lastElementChild);
  10. // 父节点
  11. console.log(ul.lastElementChild.parentElement);
  12. // 前一个兄弟
  13. const jiu = document.querySelector("#list li:nth-of-type(3)");
  14. jiu.style.background = "yellow";
  15. console.log(jiu.previousElementSibling.innerHTML);
  16. // 后一个兄弟
  17. console.log(jiu.nextElementSibling.innerHTML);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议