【学习笔记42】操作DOM
创始人
2024-02-21 09:11:38
0

操作DOM

    • 一、操作DOM
      • 1、步骤
      • 2、创建元素节点
      • 3、创建文本节点
      • 4、增加dom(添加到指定父节点的最后)
      • 5、增加dom(添加到指定父节点的最后)
      • 6、增加dom(添加到父节点的最前边)
      • 7、删除DOM
      • 8、修改某一个节点
    • 二、克隆DOM
      • 1、说明
      • 2、复制(克隆)一个LI
    • 三、获取元素尺寸(占地面积)
    • 四、获取浏览器窗口尺寸
    • 五、获取元素偏移量


一、操作DOM

  • 常规意义上的操作DOM, 就是增删改查

1、步骤

  1. 创建 (创建完成之后, 页面并不会有)
  2. 增删改查
        
  • 1
  • 2
  • 3

2、创建元素节点

  • 语法:document.createElement(标签对象);
        var myLi = document.createElement('li');console.log(myLi);

在这里插入图片描述

3、创建文本节点

  • 语法:document.createTextNode(文本内容);
        var myStr = document.createTextNode('我是li标签');console.log(myStr);

在这里插入图片描述

将文本节点写到元素节点中去

        // 创建元素节点var myLi = document.createElement('li')// 创建文本节点var myStr = document.createTextNode('我是li标签');myLi.appendChild(myStr);console.log(myLi);

在这里插入图片描述

4、增加dom(添加到指定父节点的最后)

  • 语法:父节点.appendChild(创建的元素节点);
        // 创建元素节点var myLi = document.createElement('li')// 创建文本节点var myStr = document.createTextNode('我是li标签');myLi.appendChild(myStr);console.log(myLi);// 获取标对象签var oUl = document.querySelector('ul') ;// 增加dom(添加到指定父节点的最后)oUl.appendChild(myLi);

在这里插入图片描述

5、增加dom(添加到指定父节点的最后)

  • 语法:父节点.insertBefore(要插入的新节点, 插入到那个节点前(传递Null的话是插入到父节点最后))
        // 创建元素节点var myLi = document.createElement('li')// 创建文本节点var myStr = document.createTextNode('我是li标签');myLi.appendChild(myStr);console.log(myLi);// 获取标对象签var oUl = document.querySelector('ul') ;// 增加dom(添加到指定父节点的最后) oUl.insertBefore(myLi, null);

在这里插入图片描述

6、增加dom(添加到父节点的最前边)

        // 创建元素节点var myLi = document.createElement('li')// 创建文本节点var myStr = document.createTextNode('我是li标签');myLi.appendChild(myStr);console.log(myLi);// 获取标对象签var oUl = document.querySelector('ul') ;// 增加dom(添加到父节点的最前边)oUl.insertBefore(myLi, oUl.firstElementChild);

在这里插入图片描述

7、删除DOM

  • 语法:父节点.removeChild(要删除的节点);
        // 获取标对象签var oUl = document.querySelector('ul') ;// 删除DOM   oUl.removeChild(oUl.firstElementChild);

在这里插入图片描述

8、修改某一个节点

语法:父节点.replaceChild(新的节点, 要被修改的节点);

        // 创建元素节点var myLi = document.createElement('li')// 创建文本节点var myStr = document.createTextNode('我是li标签');myLi.appendChild(myStr);console.log(myLi);// 获取标对象签var oUl = document.querySelector('ul') ;var oLi = document.getElementsByTagName('li')[1];// 修改某一个节点    oUl.replaceChild(myLi, oLi);

在这里插入图片描述

二、克隆DOM

        
  • 1
  • 2
  • 3

1、说明

        var oUl = document.querySelector('ul');var oLi = document.querySelector('li');console.log(oUl);console.log(oLi);oUl.appendChild(oLi);    

在这里插入图片描述

2、复制(克隆)一个LI

  • 语法:想要复制的节点.cloneNode(参数布尔值)
  • 参数false不克隆子节点(默认)
  • 参数true克隆子节点
        var oUl = document.querySelector('ul');var oLi = document.querySelector('li');var newLi = oLi.cloneNode(true);oUl.appendChild(newLi);

在这里插入图片描述

三、获取元素尺寸(占地面积)

    
    
  1. offsetXXX —> 实际宽度 + padding + border
  2. clientXXX —> 实际宽度 + padding
        var oDiv = document.querySelector('div')// 1. offsetXXX         ---> 实际宽度 + padding + borderconsole.log('oDiv.offsetWidth:', oDiv.offsetWidth);console.log('oDiv.offsetHeight:', oDiv.offsetHeight);console.log('----------------------------')// 2. clientXXX         ---> 实际宽度 + paddingconsole.log('oDiv.clientWidth:', oDiv.clientWidth);console.log('oDiv.clientHeight:', oDiv.clientHeight);

在这里插入图片描述

四、获取浏览器窗口尺寸

    
    
  1. window.innerXXX —> 计算时会包含浏览器的滚动条
  2. document.documentElement.clientXXX —> 计算时不会计算滚动条(只计算浏览器的可视区域)
        var oDiv = document.querySelector('div')// 1. window.innerXXX   ---> 计算时 会包含浏览器的滚动条console.log('window.innerWidth', window.innerWidth)console.log('window.innerHeight', window.innerHeight)// 2. document.documentElement.clientXXX    ---> 计算时 不会计算滚动条(只计算浏览器的可视区域)console.log('document.documentElement.clientWidth', document.documentElement.clientWidth)console.log('document.documentElement.clientWidth', document.documentElement.clientHeight)

在这里插入图片描述

五、获取元素偏移量

    
    
  • 元素.offsetParent
  • 元素.offsetLeft
  • 元素.offsetTop
        // 0. 获取元素var box2 = document.querySelector('.box2');// 1. 获取元素相对父级      元素.offsetParentconsole.log(box2.offsetParent);// 2. 获取元素的偏移量console.log('box2.offsetLeft', box2.offsetLeft);console.log('box2.offsetTop', box2.offsetTop);

相关内容

热门资讯

大学生社会实践心得体会150...   而作为一名还未走出校园的学生,我深知自己要学的东西有很多很多,对即将踏入的工作岗位又有着太多的陌...
心态管理培训心得与体会样本三... 心态管理培训心得与体会样本三例  篇一:心态管理培训心得与体会  入职第二天,公司的人事经理对我们新...
实习心得体会 实习心得体会(精选31篇)  当我们经过反思,对生活有了新的看法时,马上将其记录下来,它可以帮助我们...
志愿者活动心得体会 志愿者活动心得体会500字(通用6篇)  当我们经过反思,对生活有了新的看法时,马上将其记录下来,这...
教育名著读书心得 教育名著读书心得(通用29篇)  当我们积累了新的体会时,就十分有必须要写一篇心得体会,这样能够给人...
洛阳实习报告 洛阳实习报告  一段充实而忙碌的实习生活结束了,相信你积累了不少实习心得,让我们一起来学习写实习报告...
《小英雄雨来》读书笔记 《小英雄雨来》读书笔记45篇  读完一本书以后,大家心中一定是萌生了不少心得,何不写一篇读书笔记记录...
团支部个人心得体会 团支部个人心得体会范文(精选5篇)  当我们积累了新的体会时,不如来好好地做个总结,写一篇心得体会,...
劳动节活动心得体会 劳动节活动心得体会(通用5篇)  当在某些事情上我们有很深的体会时,可用写心得体会的方式将其记录下来...
护理学专业的心得体会 护理学专业的心得体会(通用13篇)  在平日里,心中难免会有一些新的想法,马上将其记录下来,这样有利...
工作心得体会感悟 工作心得体会感悟(通用18篇)  从某件事情上得到收获以后,往往会写一篇心得体会,如此就可以提升我们...
采购课程培训心得体会 采购课程培训心得体会范文(通用13篇)  我们心里有一些收获后,可以通过写心得体会的方式将其记录下来...
疫情期间做社区志愿服务心得 疫情期间做社区志愿服务心得  有了一些收获以后,写一篇心得体会,记录下来,这样可以帮助我们分析出现问...
被隔离人员心得体会 被隔离人员心得体会  我们有一些启发后,将其记录在心得体会里,让自己铭记于心,这么做可以让我们不断思...
从优秀到卓越读书心得 从优秀到卓越读书心得(通用18篇)  当阅读了一本名著后,大家心中一定有不少感悟,是时候静下心来好好...
小学生读书心得体会 小学生读书心得体会范文(精选10篇)  当我们受到启发,对生活有了新的感悟时,不妨将其写成一篇心得体...
教师学习心得体会 实用的教师学习心得体会(通用15篇)  我们得到了一些心得体会以后,往往会写一篇心得体会,它可以帮助...
档案管理的心得体会 档案管理的心得体会(精选11篇)  我们得到了一些心得体会以后,可以记录在心得体会中,这样我们就可以...
超市社会实践心得体会 超市社会实践心得体会范文(精选14篇)  我们在一些事情上受到启发后,可以寻思将其写进心得体会中,这...
保密工作心得 保密工作心得保密工作心得通过学习中央领导关于保密工作重要指示精神,了解到了保密工作在我们工作中的重要...