DOM BOM操作

document.getElementById(‘time’);
dir可以打印出该对象结构
获取的是一个对象
举例

  <div id="time">2019</div>
<script>
  var time=document.getElementById('time');
  console.log(time);
  console.log(typeof time);
  console.dir(time);
</script>

在这里插入图片描述
通过getElementsByTagName获取某类标签。

<body>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
<ol id="ol">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ol>
  <script>
    //1.返回的是 获取过来元素对象的集合 以伪元素形式存储
    var lis=document.getElementsByTagName('li');
    console.log(lis)
    for (var i=0;i<lis.length;i++){
      console.log(lis[i]);
    }
    //获取ol中的小li
    var lis2=document.getElementById('ol');
    for (var i=0;i<lis.length;i++){
      console.log(lis2.getElementsByTagName('li'));
    }
    //页面中只有一个ol时获取的是伪数组形式,该伪数组是没有内容的,需要指定
    //伪数组中的元素才可以获取到li
    var lis3=document.getElementsByTagName('ol');
    console.log(lis3[0].getElementsByTagName('li'));
  </script>
</body>

通过getElementsByClassName获取到类名,通过querySelector获取到body中第一个元素的值

<body>
  <div>
    <p class="hello">你好</p>
    <p class="hello">hello</p>
  </div>
  <ol>
    <li></li>
  </ol>
<script>
  var hello=document.getElementsByClassName('hello');
  console.log(hello);
  var div=document.querySelector('div');
  console.log(div);
  var p=document.querySelector('.hello');
  console.log(p)
</script>
</body>

效果如图
在这里插入图片描述
querySelectAll获取所有相关元素

document.querySelectAll('');

举例

<body>
  <div>
    <p class="hello">你好</p>
    <p class="hello">hello</p>
  </div>
  <script>
    //querySeletorAll返回指定选择器的所有元素对象集合
     var allHello = document.querySelectorAll('.hello');
     console.log(allHello);
  </script>
</body>

获取body元素可以直接使用document.body形式获取

<body>
  <script>
    var body=document.body;
    console.log(body);
  </script>
</body>

在这里插入图片描述
事件三要素:
1.获取事件源
2.绑定事件 注册事件
3.添加事件处理程序
举例

<body>
<div>11111111</div>
  <script>
    var body=document.body;
    console.log(body);
    var div=document.querySelector('div');
    div.onclick = function (e){
        alert('我被击中了');
        console.log(e)
    }
  </script>
</body>

改变事件内容

<button type="button">改变事件内容</button>
<div>11111111</div>

    var button=document.querySelector('button');
    button.onclick = function (){
        div.innerText="2222222";
    }
<div>
  <button id="bird"></button>
  <button id="cat"></button>
</div>
<input id="input" value="输入内容" type="text">
<div id="box">
  <img  width="860" height="540" src="../first/image/bird.jpg" id="img">
  <i class="close-btn" id="close-btn">x</i>
</div>
<script>
  var bird=document.getElementById('bird');
  var cat = document.getElementById('cat');
  var img=document.getElementById('img');
  bird.onclick=function (){
    img.src='../first/image/bird.jpg'
    input.value="🐱"
  }
  cat.onclick = function (){
    img.src='../first/image/cat.jpg'
    input.value="🐕"
  }
    closeBtn.onclick = function (){
    alert("111111")
      box.style.display='none';
  }
</script>

在这里插入图片描述
在这里插入图片描述

显示隐藏文本框内容

<body>
  <input type="text" value="手机">

  <script>
    //1.获取元素
    var text=document.querySelector('input');
    //2.注册事件 获得焦点事件
    text.onfocus = function (){
      if (this.value==="手机"){
        this.value='';
      }
      this.style.color='#333';
      //设置四个边框
      this.style.outline='0';
    }
    //3.注册事件 失去焦点事件 onblur
    text.onblur = function (){
      if (this.value===''){
        this.value="手机";
      }
    }
    //失去焦点把文本框颜色变浅
    this.style.color='#999';
  </script>
</body>

在这里插入图片描述
在这里插入图片描述
通过className修改样式

  <style>
    .purple{
      width: 100px;
      height: 100px;
      background-color: purple;
      border: 2px solid gray;
      border-radius: 20px;
      text-align: center;
      line-height: 100px;
    }
  </style>
<body>
  <div className="text">文本</div>
<script>
  var div=document.querySelector('div');
  div.onclick =function (){
  //className会覆盖原来的样式所以只需要把原先样式加上就好
    this.className='text purple';
  }
</script>
</body>

点击后效果
在这里插入图片描述
改变border

<body>
  <button>按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
  <button>按钮4</button>
  <button>按钮5</button>
<script>
<!--  1.获取所有按钮元素-->
var btns=document.getElementsByTagName('button');
for (var i=0;i<btns.length;i++){
  btns[i].onclick = function (){
    for (var i=0;i<btns.length;i++){
      btns[i].style.backgroundColor='';
      btns[i].style.border='2px outset buttonbar'
    }
    this.style.backgroundColor='cyan';
    this.style.border='1px solid grey';
  }
}
</script>
</body>

隔行变色实现

<body>
  <table>
    <thead>
      <th>代码</th>
      <th>名称</th>
      <th>最新公布净值</th>
      <th>累计净值</th>
      <th>前单位净值</th>
      <th>净值增长率</th>
    </thead>
    <tbody>
      <tr>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
    </tbody>
  </table>
<script>
  //1.获取元素 获取的是tbody里面所有的行
  var trs=document.querySelector('tbody').querySelectorAll('tr');
  //2.利用循环绑定注册事件
  for (var i=0;i<trs.length;i++){
    //3.鼠标经过事件onmouseover
    trs[i].onmouseover = function (){
      this.className='bg';
    }
    //4.鼠标离开事件 onmouseout
    trs[i].onmouseout = function (){
      this.className='';
    }
  }
</script>

效果:
在这里插入图片描述

全选反选实现,即选中全选框后把状态给下面的每个单选框。

选择底下的单选框,选中后将全选框一起勾中的效果是,遍历每个单选框,只要有一个没有勾到,就不勾选全部。
代码如下:

<body>
  <table>
    <thead>
      <th>
        <input type="checkbox" id="j_cbAll">
      </th>
      <th>代码</th>
      <th>名称</th>
      <th>最新公布净值</th>
      <th>累计净值</th>
      <th>前单位净值</th>
      <th>净值增长率</th>
    </thead>
    <tbody id="j_tb">
      <tr>
        <td>
          <input type="checkbox">
        </td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>
          <input type="checkbox">
        </td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>
          <input type="checkbox">
        </td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>
          <input type="checkbox">
        </td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>
          <input type="checkbox">
        </td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
      <tr>
        <td>
          <input type="checkbox">
        </td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
        <td>11231</td>
      </tr>
    </tbody>
  </table>
<script>

  var j_tbAll=document.getElementById('j_cbAll');
  var j_tbs=document.getElementById('j_tb').getElementsByTagName('input');
  j_tbAll.onclick = function (){
    for (var i=0;i<j_tbs.length;i++){
      j_tbs[i].checked=this.checked;
    }
  }
  for (var i=0;i<j_tbs.length;i++){
    j_tbs[i].onclick =  function (){
      var flag=true;
      for (var j=0;j<j_tbs.length;j++){
        if (!j_tbs[j].checked){
          flag=false;
          break;
        }
      }
      j_tbAll.checked=flag;
    }
  }
</script>
</body>

效果:
在这里插入图片描述

怎么获取属性值
element.getAttribute(‘属性’);
在这里插入图片描述
关于DOM 操作,我们主要是针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。
创建

//重写页面
1.document.write
2.innerHTML //效率高
3.createElement //创建节点清晰

1.appendChild
2.insertBefore


在这里插入图片描述
查询操作
在这里插入图片描述
属性操作
在这里插入图片描述
事件操作
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值