放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

      • js 基础语法
      • js 数据类型
      • js 字符串
      • js 数组
      • js 对象
      • js 变量
      • js 函数
      • js 事件
      • js 循环
      • js 浅拷贝和深拷贝
      • js 动画
      • js DOM
        • js DOM
          • 查找节点
          • 宽高api
          • 添加和删除 class
      • js 防抖节流
      • js 原型及原型链
      • js this
      • js 作用域
      • js 继承
      • js 闭包
      • js 内存
      • js垃圾回收
    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2020-07-09

js DOM

# js DOM

可读可写属性指的是不仅能通过js获取该属性的值,还能够通过js为该属性赋值。

# 查找节点

document.querySelector(selectors) // 接受一个CSS选择器作为参数,返回第一个匹配该选择器的元素节点。

document.querySelectorAll(selectors) //接受一个CSS选择器作为参数,返回所有匹配该选择器的元素节点。

document.getElementsByTagName(tagName) //返回所有指定HTML标签的元素

document.getElementsByClassName(className) //返回包括了所有class名字符合指定条件的元素

document.getElementById(id) //返回匹配指定id属性的元素节点。

document.getElementsByName(name) // 用于选择拥有name属性的HTML元素

document.elementFromPoint(x,y) //返回位于页面指定位置最上层的Element子节点。

# 宽高api

scrollTop: 元素被卷起的高度

clientHeight: 可视部分高度

  1. clientWidth、clientHeight 可视部分宽度和高度(padding+content) 只读属性

clientWidth、clientHeight 如果没有滚动条,即为元素设定的高度和宽度,如果出现滚动条,滚动条会遮盖元素的宽高,那么该属性就是其本来宽高减去滚动条的宽高

clientTop、clientLeft border的宽度和高度

  1. offsetWidth、offsetHeight 可视宽度和高度(border+padding+content) 只读属性

offsetLeft、offsetTop 当前元素,相对于其offsetParent(离自己最近的具有定位的absolute或者relative的父级元素)左边距离和上边距离 只读属性

说到这对属性就需要说下offsetParent,所谓offsetParent指的是当前元素的离自己最近的具有定位的(position:absolute或者position:relative)父级元素(不仅仅指的是直接父级元素,只要是它的父元素都可以),该父级元素就是当前元素的offsetParent,如果从该元素向上寻找,找不到这样一个父级元素,那么当前元素的offsetParent就是body元素。而offsetLeft和offsetTop指的是当前元素,相对于其offsetParent左边距离和上边距离,即当前元素的border到包含它的offsetParent的border的距离

  1. scrollHeight、scrollWidth 元素内部内容的实际宽度和高度

scrollHeight、scrollWidth 当元素内部的内容超出其宽度和高度的时候,元素内部内容的实际宽度和高度,需要注意的是,当元素其中内容没有超过其高度或者宽度的时候,该属性是取不到的 只读属性

scrollTop和scrollLeft 指的是当元素其中的内容超出其宽高的时候,元素被卷起的高度和宽度。可读写

document.body.offsetWidth 网页可以滑动的区域

window.screen.availWidth 空白区域(可用区域:显示的屏幕 除掉上面的工具栏(浏览器的标签)和下面的工具栏(电脑的菜单))

window.screen.Width 显示器的宽和高,也就是电脑的分辨率

# 添加和删除 class

    1. classList
    • (1) DOM.classList.add("类名") // 添加
    • (2) DOM.classList.remove("类名") // 删除
    1. setAttribute

    获取 Dom 的 class 属性: var classVal = document.getElementById("id").getAttribute("class");

    // 删除的话
    classVal = classVal.replace("someClassName", "");
    document.getElementById("id").setAttribute("class", classVal);
    
    1
    2
    3
    //添加的话
    classVal = classVal.concat("someClassName");
    document.getElementById("id").setAttribute("class", classVal);
    
    1
    2
    3
    //替换的话
    classVal = classVal.replace("someClassName", "otherClassName");
    document.getElementById("id").setAttribute("class", classVal);
    
    1
    2
    3
更新时间: 4/21/2021, 7:23:28 PM
js 动画
js 防抖节流

← js 动画 js 防抖节流→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式