DOM

130 阅读3分钟

1. 查找元素

image.png

// getElementById()  返回匹配指定 id 的一个元素。
  <div id="d1">我是一个div标签</div>
  <script>
  // 查找id为d1的标签
  var div = document.getElementById('d1');
  console.log(div);
  </script>
  
// getElementsByTagName()  返回一个`HTMLCollection`(伪数组),包含匹配指定标签名的所有元素。
  <p>我是p标签</p>
  <p>我是p标签</p>
  <p>我是p标签</p>
  <script>
  // 查找所有p标签
  var p = document.getElementsByTagName('p');
  console.log(p);
  </script>
  
// getElementsByClassName()  返回一个HTML集合`HTMLCollection`(伪数组),
//                           包含匹配指定类名的所有元素。
<div class="div1">我是div标签</div>
<div class="div1">我是div标签</div>
<div class="div1">我是div标签</div>
<script>
  // 查找class为div1的标签
  var div = document.getElementsByClassName('div1');
  console.log(div);
</script>

// document.querySelector() 返回文档中匹配指定的CSS选择器的第一元素
  <div id="div1">我是一个div</div>
  <div id="div1">我是一个div</div>
  <script>
  document.querySelector("#div1").innerHTML = "Hello World!";
  </script>

// document.querySelectorAll()  返回文档中匹配的CSS选择器的所有元素节点列表
<div class="div1">我是一个div</div>
<div class="div1">我是一个div</div>
<script>
  console.log(document.querySelectorAll(".div1"));
  var x = document.querySelectorAll(".div1");
  x[0].innerHTML = '我是新的div';
</script>

2. 操作元素的属性

// 元素自带属性
 <div id="d1">我是一个div标签</div>
    <input type="text" id="d2">
    <img src="" id="d3" alt="">
  <script>
    d1.innerHTML = "123"
    d2.type = "password"
    d3.src = "	https://m.360buyimg.com/babel/jfs/t1/191178/7/40736/24752/654459bbF3c494a4e/4e78e3e656e12a5a.png"
  </script>
  
//  自己定义属性
//  setAttribute('属性','值') getAttribute('属性') removeAttribute('属性') 
    d1.setAttribute("zcw","459")
    console.log(d1.getAttribute("zcw"))
    d1.removeAttribute("zcw","459")
    
// 通过 ‘data-属性名’ 方式自定义属性
<div data-index='2'></div> 'data-'是自定义属性的前缀,便于区分自定义属性和内置属性
console.log(d1.dataset)  // 提取
d1.dataset.zcw = "456"   // 设置自定义标签
delete d1.dataset.zcw    // 删除标签

3.操作元素样式

<style>
       div{
           height: 100px;
           background-color: yellow;
       }
   </style>
// 只能行内样式方法 style --读写
    <div id="d1" style="width: 100px; color: black;">zcw </div>
   <script>
     console.log(d1.style.width)
     console.log(d1.style.color)
   </script> 
// 内部样式,外部样式,行内 getComputedStyle 获取,不能赋值写样式 
    <div id="d1" style="width: 100px; color: black;">zcw </div>
   <script>
   var box = document.getElementById("d1")
   var res = getComputedStyle(box).width
   console.log(res)
   </script> 

4.操作元素类名

// className 可以一次设置多个样式 
    <div id="d1" class="item1 item2 item3">zcw </div>
    <script>
        d1.className = "item1" //class 只有item1 
    </script>    
    
 // classList 一个一个改
     <div id="d1" class="item1 item2 item3">zcw </div>
    <script>
       console.log(d1.classList)
       d1.classList.add("item4")
      d1.classList.remove("item1")
    </script>    
    
 //  toggle 转换 
     <div id="d1" class="item1 item2 item3">zcw </div>
    <button id="btn">转换</button>
    <script>
        btn.onclick = function(){
            d1.classList.toggle("item")
        }
    </script>  (没有这个名的情况下 按一下按钮有,再按无)

5.节点

孩子节点

image.png 第二个是第一个节点,第一个元素节点

兄弟节点

image.png 上是:上一个兄弟节点,下是:下一个兄弟节点

父亲节点

image.png

元素节点

image.png

6.节点操作

创建节点

image.png

插入节点

image.png 上:插入到box的最后一个节点

删除节点

image.png

替换节点

image.png

克隆节点

image.png

7. 获取元素尺寸

offset 元素

image.png 前宽后高

clien 元素

image.png 同上

注意

image.png

获取元素偏移量

offset 元素 获取的是相对于父元素的top,left

image.png

clien 元素 获取的是边框的top,left

获得页面尺寸

image.png 上:计算滚动条,下:不计滚动条

8.事件

事件解绑

image.png

事件类型

鼠标事件

image.png

image.png

上:与子元素时也有移入移出,后没有 image.png

image.png

浏览器事件

image.png

键盘事件

image.png

表单事件

image.png

image.png

提交,重置 事件附在form上

image.png

触摸事件 (用于移动端)

触,移,松

image.png

DOM事件流

image.png

阻止事件传播

image.png

阻止默认行为

image.png

事件委托

image.png

正则表达式

c275751cb51e7a105ad2650ac301a3e.png

检验

c12719d6ba8449e11558cf9ab20e399.png

image.png

元字符

80a4b58a3eb9e717d199afa68372698.png

423b03e316ba6bf3dfa73e968edc91f.png

452497578a6cda0f5efa6bed05e71e4.png

aa8312d224f2d952b3b9cdb2ff7ca65.png

8b72bdc9ea2431e0d398bc96c04bf47.png

29f9ab4d65e93a2389cc712c9178fae.png

07382c0bfa5af8bc42633c552393d59.png

d404862d786fdb16f1f38b01a812e08.png

边界符

a103aa8452320161ada621a9aaad2b7.png

4388e1fde64d98c4c144808ee5b0b97.png

限定符

8f00a64fddc038cdba679e4dd297671.png

f4112f96e6b4c7f041f23708a3b5c5e.png

16dea3f4c7bc5722e72fcf593a81950.png

01877343f2bf0d3d923884878ca6855.png

667d0cee3f07947e266642705af2360.png

特殊符号

04dbad28e4472ff1a84fbc1b941b3e1.png

f8a25fa26ea29b641f0a3c285722f29.png

image.png

取反

image.png

标识符

前:不会仅显示第一个 后:忽略大小写

image.png

image.png

特点

image.png

image.png

image.png

正则与字符串的方法

image.png

上:只换第一个,下:所有a都换

image.png

查找索引位置,只能找第一个,找不到显示-1

image.png

image.png

this指向

image.png

image.png

指向改变

image.png

image.png