Blogger Information
Blog 20
fans 0
comment 0
visits 15004
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS学习小结(构造函数原型与对象原型的关系、获取dom元素的常用方法、dom元素的增删改查)
庖丁
Original
755 people have browsed it

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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
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