Blogger Information
Blog 16
fans 0
comment 0
visits 13233
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS常用操作知识——for循环——JS中的‘类’——DOM的操作
小雨丶
Original
941 people have browsed it
循环
  1. do——white
  2. 入口判断
  3. while(条件语句){执行语句}
  4. 出口判断://至少执行一次
  5. do{执行语句}while{条件语句}
  6. for 循环
  7. for(循环条件){
  8. 执行语句
  9. }
对象循环使用的是for——in
  1. for(let key in obj){执行语句} // key 代表的是键值对 (对象中的数据以键值对的形式存在)
  2. for——in 也可以用于遍历数组
在ES6中遍历用for-of
  1. for(let item of obj){执行语句} // 遍历数组时,item是值
  2. 对象的遍历:需要添加迭代才能用for——of遍历
函数的原型属性prototype
  1. 构造函数中使用,用来创建对象
  2. 构造函数必须使用new调用,new的过程就是创建一个对象的过程,这个过程叫类的实例化
  3. // 声明一个构造函数
  4. function User(name, email) {
  5. // 创建一个新对象,用this来表示
  6. const this = new User; // 这个步骤是代码自动执行的,不需要自己写
  7. // 初始化对象,给这个对象添加自定义属性,用来区分实例
  8. this.name = name;
  9. this.email = email;
  10. return this; // 最后步骤,也是系统自动执行,不需要自己写
  11. }
  12. 实例的原型属性prototype指向构造函数的原型属性prototype,实例都是继承的构造函数
  13. 构造函数的自定义属性等级大于实例中的
  14. 属性不应该共享,它是用来区分实例的
  1. JS中的类是语法糖,不是真的开发语言中的类,是用构造函数来模拟类
  2. constructor(name, email) {
  3. this.name = name;
  4. this.email = email;
  5. }
  6. 类中的静态方法: 实例中直接调用
  7. static userName = '姓名';
  8. static fetch() {
  9. // this指向的是是类
  10. return { name: this.userName };
  11. }
  12. 类中的私有成员,访问有限制:可以用器访问属性调用并返回,其他实例就可以调用器访问属性来操作私有成员
  13. #age = 40; // 用#定义
类的继承
  1. 重点extends supper
  2. 不能访问私有成员
  3. class 子类 extends 父类{
  4. constructor(name, email, gender) {
  5. supper(name, email); // 调用父类的,没有supper不行
  6. this.gender = gender;
  7. }
  8. }
  9. ***迭代器***
  10. function myIterator(data){
  11. // 迭代器中必须要有一个next()方法
  12. return{
  13. next(){
  14. // done: 表示遍历是否完成
  15. // value: 当前遍历的数据
  16. let done = i >= data.length;
  17. let value = !done ? data[i++] : undefined;
  18. return { done, value }
  19. }
  20. }
  21. }
  22. ***********
DOM获取
  1. HTML结构
  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. </ul>
  9. // 使用css选择器是最直观的

获取满足条件所有元素

  1. const lis = document.querySelectorAll('#list li');
  2. console.log(lis);
  3. //Nodelist是浏览器内置的集合类型,属性类数组,
  4. let lisArr = Array.from(lis); // 变成真数组 let larr = [...lis];也可以变成真数组
  5. Nodelist可以用forEach遍历
  6. lis.forEach(function(要遍历的值item,值的索引index,要遍历的数组arr) => console.log(item));
  7. let first = document.querySelectorAll('#list li:first-of-type'); // 得到的是一个集合

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

  1. document.querySelector('#list li');

能快捷获取的元素

  1. document.documentElement
  2. .head
  3. .body
  4. .title
  5. .forms // 返回的是个集合
  6. .images // 所有的图片
DOM增删改查
  1. 创建:li = document.createElement();
  2. 添加:dom.appendChild(li);
  3. 给创建的li添加内容:li.innerHTML = "<i>内容</i>";
  4. 添加文本: li.innerText = '文本';
  5. 创建的另一种
  6. // 将标签写进一个变量——字符串形式
  7. let htmlStr = '<li class="item">item6</li>';
  8. ul.insertAdjacentHTML("beforEnd", htmlStr); // beforEnd是结束之前的位置
  9. // 节点形式
  10. ul.insertAdjacentElement("afterBegin", li);
  11. 大量添加元素方法
  12. const frag = document.createDocumentFragment(); // 或者用 const frag = new DocumentFragment();
  13. for(let i=0;i<5;i++>) {
  14. const li = document.createElement('li');
  15. li.textContent = "Hello" + (i+1);
  16. frag.appendChild(li);
  17. }
  18. ul.appendChild(frag);
  19. 更新
  20. let h3 = document.createElement('h3');
  21. document.querySelector('li:nth-of-type(3)').replaceWidth(h3); // 更改第三个
  22. ul.replaceChild(h3, document.querySelector('li:last-of-type')); // 更改最后一个
  23. 删除
  24. ul.removeChild(document.querySelector('#list h3'));
  25. 查询
  26. 获取所有子元素: ul.children;
  27. 获取所有子元素数量:ul.children.length;//或者 ul.childElementCount;
  28. 获取第一个子元素
  29. ul.firstElementChild;
  30. 最后一个
  31. ul.lastElementChild;
  32. 获取父节点
  33. 子节点.parentElement;
  34. 前一个兄弟节点
  35. const nth_jiu = document.querySelector('#list li:nth-of-type(9)'); // 拿到第九个子节点
  36. nth_jiu.previousElementSibling.innerHTML;
  37. 后一个兄弟节点
  38. nth_jiu.nextElementSibling.innerHTML;
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