class声明,属性,方法,静态方法与继承的语法、DO

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
一、class声明与实例化,属性,方法,静态方法与继承的语法1.1、class声明与实例化、属性、方法:
  1. class User {
  2. // 1. 属性
  3. // 构造方法: new的时候(实例化时)自动调用
  4. constructor(uname,email) {
  5. this.uname = uname
  6. this.email = email
  7. }
  8. // 2. 方法
  9. // 自动创建到原型中
  10. say() {
  11. return `${this.uname}: ( ${this.email} )`
  12. }
  13. // 3. 静态成员
  14. static nation = 'China'
  15. let user = new User('金莲','jl@gmail.com')
  16. console.log(user.say())
  17. console.log(User.nation)
  18. }


1.2、继承
  1. // 创建子类时为了扩展父类的功能
  2. class Chlid extends User {
  3. constructor(uname,email,age) {
  4. super(uname,email)
  5. // super 等于 父类创建的属性
  6. // 当前的this是user的this,使用会报错
  7. this.age = age
  8. }
  9. say() {
  10. //return `${this.uname}: ( ${this.email} )`
  11. return `${super.say()}, ${this.age}`
  12. }
  13. }
  14. let child = new Chlid('武松','ws@gmail.com', 40)
  15. console.log(child)
  16. console.log(child.say())


二、DOM元素的获取方法
  1. <ul class="list">
  2. <li>item1</li>
  3. <li>item2</li>
  4. <li>item3</li>
  5. <li>item4</li>
  6. <li>item5</li>
  7. <li>item6</li>
  8. </ul>
  1. <script>
  2. // 1. 获取1组:querySelectorAll(selector)
  3. const items = document.querySelectorAll('.list > li')
  4. console.log(items)
  5. // 返回不是数组,是类数组
  6. console.log(Array.isArray(items))
  7. // NodeList对象,定义了一个forEach接口,可直接遍历
  8. items.forEach( item => console.log(item.textContent) )
  9. // 可用 Array.from 或者 ...rest 将类数组转为真正数组来用
  10. //Array.from(items).forEach( item => console.log(item.textContent) )
  11. //;[...items].forEach( item => console.log(item.textContent) )
  12. // 2. 获取1个:querySelector(selector)
  13. //first = items[0];
  14. let first = document.querySelector('.list > li')
  15. console.log(first);
  16. </script>


Nodelist可以使用forEach,但它不是真数组,如果想使用更多数组方法,需要转换
类数组转为真数组,可用以下两种方法: 【Array.from】 或者 【...rest】


三、获取表单数据
  1. <form action="login.php" method="post" id="login">
  2. <fieldset class="login" style="display: inline-grid; gap: 10px">
  3. <legend>用户登录</legend>
  4. <div>
  5. <label for="email">邮箱:</label>
  6. <input type="email" name="email" id="email" value="admin@php.cn" autofocus />
  7. </div>
  8. <div>
  9. <label for="password">密码:</label>
  10. <input type="password" name="password" id="password" value="123456" />
  11. </div>
  12. <button>提交</button>
  13. </fieldset>
  14. </form>
  1. // 1. 获取表单from:form.id
  2. const form = document.forms.login
  3. console.log(form)
  4. // 2. 获取表单控件: name id value
  5. const email = form.email
  6. const emailValue = form.email.value
  7. console.log(email)
  8. console.log(emailValue)
  9. console.log(document.body)
  10. console.log(document.title)
  11. // html
  12. console.log(document.documentElement)


四、DOM遍历的常用方法
  1. <ul class="list">
  2. <li>item1</li>
  3. <li>item2</li>
  4. <li>item3</li>
  5. <li>item4</li>
  6. <li>item5</li>
  7. <li>item6</li>
  8. </ul>
  1. let list = document.querySelector('.list')
  2. items = list.children
  3. console.log(items)
  4. // 第一个子元素
  5. console.log(list.firstElementChild)
  6. //下一个
  7. let first = list.firstElementChild
  8. let second = first.nextElementSibling
  9. console.log(second)
  10. // 最后一个
  11. console.log(list.lastElementChild)
  12. // 前一个
  13. let last = list.lastElementChild
  14. let prev = last.previousElementSibling
  15. console.log(prev)
  16. // 父节点
  17. let parent = last.parentNode
  18. console.log(parent)


笔记小记:1. 类
  1. 声明: class声明
  2. 属性: constructor()
  3. 方法: method(){}简写
  4. 静态: static
  5. 继承: extends / super
2. 获取 DOM 元素
  1. 一组: querySelectorAll()
  2. 一个: querySelector()
3. 获取表单数据
  1. 表单: docment.forms.id
  2. 控件: form.name/id
页面快捷方法
  1. body : document.body
  2. head : document.head
  3. title : document.title
  4. html : document.documentElement
  5. url : document.URL
4. 遍历 DOM
  1. children: 元素类型子节点
  2. firstElementChild: 第一个子元素
  3. lastElementChild: 最后一个子元素
  4. nextElementSibling: 下一个兄弟元素
  5. previousElementSibling: 前一个兄弟元素
  6. parentElement: 父元素
【本文由: 阜宁网页制作 http://www.1234xp.com/funing.html 复制请保留原URL】