博客列表 >JS学习小结(构造函数原型与对象原型的关系、获取dom元素的常用方法、dom元素的增删改查)

JS学习小结(构造函数原型与对象原型的关系、获取dom元素的常用方法、dom元素的增删改查)

庖丁
庖丁原创
2021年01月18日 15:46:07754浏览

1.构造函数原型与对象原型

构造函数是对象的生产工厂,生产出来的对象,其原型会指向构造函数的原型,对象的原型会从构造函数的原型继承成员(属性和方法),示例如下

  1. function Obj(name,age){
  2. this.name = name;
  3. this.age = age;
  4. }
  5. const student1 = new Obj("张三",8);
  6. console.log(student1);
  7. console.log(student1 instanceof Obj);
  8. Obj.prototype.banji = "三年级";
  9. console.log(student1);
  10. Obj.prototype.show = function(){
  11. return `学生${this.name}的年龄是${this.age}岁,目前上${this.banji}。`;
  12. };
  13. console.log(student1.show());

2.获取dom元素的常用方法

获取元素的常用方法一般有四种,通过css选择器,css属性选择器获取,通过id获取,通过标签元素获取。
示例如下

  1. <title>
  2. 跟着朱老师学php
  3. </title>
  4. <body>
  5. <ul>
  6. <li id="site">首页</li>
  7. <li class="lanmu">栏目1</li>
  8. <li class="lanmu">栏目2</li>
  9. <li class="lanmu">栏目3</li>
  10. <li class="lanmu">栏目4</li>
  11. </ul>
  12. <script>
  13. //通过标签元素获取,获取后用数组下标的方式调用某个元素
  14. let huoQu = document.getElementsByTagName("title");
  15. console.log(huoQu[0]);
  16. //通过id获取,直接调用,不检查id是否唯一,返回第一个
  17. huoQu = document.getElementById("site");
  18. console.log(huoQu);
  19. //通过css属性选择器,用数组索引号的方式调用某个元素
  20. huoQu = document.getElementsByClassName("lanmu");
  21. console.log(huoQu[2]);
  22. //通过css选择器,适用范围最广,既能用id也能用css属性,还能用标签
  23. huoQu = document.querySelectorAll(".lanmu");
  24. console.log(huoQu);
  25. huoQu = document.querySelectorAll("#site");
  26. console.log(huoQu[0]);
  27. huoQu = document.querySelectorAll("ul");
  28. console.log(huoQu[0]);
  29. </script>
  30. </body>

3.dom元素的增删改查

一、dom元素的增加

方法①,通过父元素添加子元素的方法

1、创建元素要用createElement方法
2、给元素添加内容有两种方法,一种是innerHTML,一种是innerText
3、添加到页面中,要用appendChild方法,应用在其父元素上
示例如下

  1. <body>
  2. <ul>
  3. <li id="site">首页</li>
  4. <li class="lanmu">栏目1</li>
  5. <li class="lanmu">栏目2</li>
  6. <li class="lanmu">栏目3</li>
  7. <li class="lanmu">栏目4</li>
  8. </ul>
  9. <script>
  10. const ul = document.querySelector("ul");
  11. const li = document.createElement('li');
  12. li.innerHTML = "<i>栏目5</i>";
  13. ul.appendChild(li);
  14. console.log(ul);
  15. </script>
  16. </body>

方法②,通过父元素添加字符串的方法

1、需要使用 AdjacentHTML方法
2、AdjacentHTML(),方法有两个参数,第一个是插入位置,比如beforeEnd(结束标签之前)、afterBegin(开始标签之后),第二个参数是插入字符串
示例如下

  1. <body>
  2. <ul>
  3. <li id="site">首页</li>
  4. <li class="lanmu">栏目1</li>
  5. <li class="lanmu">栏目2</li>
  6. <li class="lanmu">栏目3</li>
  7. <li class="lanmu">栏目4</li>
  8. </ul>
  9. <script>
  10. const ul = document.querySelector("ul");
  11. const li = document.createElement('li');
  12. let str = '<li class="lanmu">栏目5</li>';
  13. ul.insertAdjacentHTML("beforeEnd",str);
  14. console.log(ul);
  15. </script>
  16. </body>

批量添加元素,需要使用文档片段或者字符串方式

文档片段方法为createDocumentFragment(),利用for循环将所有生成的元素挂载到文档片段上面,然后统一添加。
示例如下

  1. <body>
  2. <ul>
  3. <li id="site">首页</li>
  4. <li class="lanmu">栏目1</li>
  5. <li class="lanmu">栏目2</li>
  6. <li class="lanmu">栏目3</li>
  7. <li class="lanmu">栏目4</li>
  8. </ul>
  9. <script>
  10. const ul = document.querySelector("ul");
  11. const frag = document.createDocumentFragment();
  12. for(let i=0;i<5;i++){
  13. const li = document.createElement('li');
  14. li.innerText = `栏目${i+5}`;
  15. frag.appendChild(li);
  16. }
  17. ul.appendChild(frag);
  18. console.log(ul);
  19. </script>
  20. </body>

运算结果如下图所示

二、dom元素的修改

修改替换,使用的是replaceWith()方法
如果用父级方法,使用的是replaceChild(替换内容,被替换的子元素)

  1. <body>
  2. <ul>
  3. <li id="site">首页</li>
  4. <li class="lanmu">栏目1</li>
  5. <li class="lanmu">栏目2</li>
  6. <li class="lanmu">栏目3</li>
  7. <li class="lanmu">栏目4</li>
  8. </ul>
  9. <script>
  10. const li3 = document.querySelector("li:nth-of-type(4)");
  11. let tiHuan = document.createElement('li');
  12. tiHuan.innerHTML = '这个栏目内容被替换';
  13. li3.replaceWith(tiHuan);
  14. console.log(li3);
  15. </script>
  16. </body>

运算结果如图所示

三、dom元素的删除

使用父节点操作方法 removeChild()
示例如下

  1. <body>
  2. <ul>
  3. <li id="site">首页</li>
  4. <li class="lanmu">栏目1</li>
  5. <li class="lanmu">栏目2</li>
  6. <li class="lanmu">栏目3</li>
  7. <li class="lanmu">栏目4</li>
  8. </ul>
  9. <script>
  10. const ul = document.querySelector("ul");
  11. const li3 = document.querySelector("li:nth-of-type(4)");
  12. ul.removeChild(li3);
  13. </script>
  14. </body>

四、dom元素的遍历查找

//获取所有子元素
ul.children
//获取所有子元素的数量
ul.childElementCount

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议