首页 > 其他分享 >【学习笔记】DOM对象

【学习笔记】DOM对象

时间:2022-09-21 20:23:38浏览次数:58  
标签:DOM 对象 标签 father 笔记 var document 节点

【学习笔记】DOM对象

DOM:文档对象模型

浏览器网页就是一个DOM树形结构

image-20220916110446653

更新:更新DOM节点

遍历:得到DOM节点,通过ID、class等

删除:删除DOM节点

添加:添加一个新的DOM节点

 

要操作一个DOM节点,就必须要获得这个DOM节点

  • 获得DOM节点

    <body>
    <div id="father">
        <h1>标题一</h1>
        <p id="p1">p1</p>
        <p class="p2">p2</p>
    </div>
    ​
    <script>
        var h1 = document.getElementsByTagName("h1");
        var p1 = document.getElementById("p1");
        var p2 = document.getElementsByClassName("p2");
        var father = document.getElementById("father");
    ​
        //获取父节点下的所有子节点
        var chilrens = father.children
    ​
        father.firstChild;   //第一个节点
        father.lastChild;     //最后一个节点
    </script>
    </body>

     

 

  • 更新DOM节点

    • 操作文本

      <body>
      <div id="id1">
      ​
      </div>
      <script>
          var id1 = document.getElementById('id1')
          
          id1.innerText = 'Hello,World';
          
          id1.innerHTML = '<strong>你好</strong>'
          
      </script>
      </body>

      image-20220921185032538image-20220921185441335

      innerText 是修改文本的值

      innerHTML是解析html文本标签

    • 操作css

      id1.style.color = 'red'   //属性使用字符串包裹
      'red'
      id1.style.fontSize = '50px'   //驼峰命名
      '50px'

      image-20220921185622846

  • 删除DOM节点

    删除节点的步骤:先获取父节点,在通过父节点删除自己

    <body>
    <div id="id1">
    1111111
    </div>
    ​
    <script>
        var self = document.getElementById('id1');
        var father = self.parentElement;
    ​
    </script>
    </body>

    需要注意的是,删除是一个动态的过程,删除多个节点的时候,children是在时刻变化的。

    <body>
    <div id="id1">
    1111111
        <p id="id2">123</p>
        <h1>feegthr</h1>
        <p>456</p>
    </div>
    ​
    <script>
        var self = document.getElementById('id2');
        var father = self.parentElement;
    ​
    ​
        //删除了第一个子节点,第二个子节点自动变为第一个子节点,所以这样删是错误的
        father.removeChild(father.children[0]);
        father.removeChild(father.children[1]);
        father.removeChild(father.children[2]);
    ​
    ​
    </script>
    </body>

     

  • 插入节点

    我们获得了某个DOM节点,假设这个DOM节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素的话,我们在使用innerHTML,就会覆盖原先的元素

    所以我们要往里面追加

    <body>
    <p id="js">JavaScript</p>
    <div id="list">
        <p id="se">javase</p>
        <p id="ee">javaee</p>
        <p id="me">javame</p>
    </div>
    ​
    <script>
        var js = document.getElementById('js');
        var list = document.getElementById('list');
        
        list.appendChild(js)
    </script>
    </body>

    image-20220921194620824image-20220921194644751

 

通过js创建一个新的节点

//创建节点
var newP = document.createElement('p');   //创建p标签
newP.id = 'idp';       //给p标签设置id
newP.innerHTML = ',你好我是p标签';    //给p标签设置文本内容
​
list.appendChild(newP);    //把p标签加入到list节点中

image-20220921195114299

创建标签节点

//创建标签节点
var myScript = document.createElement('script');
myScript.setAttribute('type','test/javascript')   //给script标签设置属性
list.appendChild(myScript);  //把script追加到list中

image-20220921195527909

 

创建style标签

//创建style标签
var myStyle = document.createElement('style');    //创建style标签
myStyle.setAttribute('type','text/css');    //为style设置属性
myStyle.innerHTML = 'body{background-color:chartreuse}';   //设置标签内容
document.getElementsByTagName('head')[0].appendChild(myStyle);   //追加到head标签中

image-20220921200213618

 

插入到前面 insertBefore

<div id="list">
    <p id="se">javase</p>
    <p id="ee">javaee</p>
    <p id="me">javame</p>
</div>
​
<script>
    var js = document.getElementById('js');
    var list = document.getElementById('list');
    var ee = document.getElementById('ee');
​
    list.insertBefore(js,ee);
</script>

要包含的节点.insertBefore(新节点,目标节点)

标签:DOM,对象,标签,father,笔记,var,document,节点
From: https://www.cnblogs.com/wztblogs/p/16717002.html

相关文章

  • elasticsearch8.1源码编译笔记
    环境idea2022.1.3jdk17macos10.14.6gradle7.4.2(代码自动下载)前置准备idea设置JDK17idea设置gradleJVM为ProjectJVMgradle设置aliyun加速(可选),有时设......
  • 前端学习笔记--HTML5
    网页的优点(客户端为网页)(B/S)模式开发成本低)不需要安装无需更新跨平台(最重要)可以有效的减小开发成本传统的为C/S模式,开发成本高前端工程师负责写网页的源代码,而浏览......
  • const修饰成员函数,常函数,常对象
    设计关键字:const、mutable常函数:-成员函数后面加const,就是常函数-常函数里面不能修改成员变量的值-成员变量加mutable修饰,在常函数中可以修改 常对象:-声明对象......
  • R语言学习笔记:因子factor和数据框data frame基础介绍和使用教程
    今天的笔记内容是R语言中因子和数据框的基础介绍和使用方法。更多笔记关注公众号:生信分析笔记R语言因子因子可以用来存储不同类别的数据类型,R语言创建因子使用facto......
  • SAP操作手册之 号码范围对象
    一前言编号范围对象(NUMBERRANGE)是SAPERP软件中的一个重要概念.主要用来获取流水号.在标准功能及自开发功能中大量使用.系统中的几乎所有对象的号码都是通过编号范......
  • 程序员的修炼之道:从小工到专家 读书笔记一
    序中讲述了:如何成为更好的程序员,通过阅读本书,将会对你有帮助,编程是一个技艺,是艰难的工作。讲述了这本书的目标:使得读者变成更为有效、更多产的程序员。简单讲述了注重实效......
  • 面向对象八大原则
    首先得区分出,哪些部分是相对稳定的,哪些部分是相对变化的。单一职责原则(SingleResponsibilityPrinciple)每一个类应该专注于做一件事情。里氏替换原则(LiskovSubstituti......
  • 【学习笔记】平衡树 Treap
    平衡树旋转Treap一个重要的等式treap=tree+heap解释:treap,即树堆,顾名思义,就是树+堆,而一般的,此处的树指BST(二叉搜索树)也就是说,treap是一棵BST,也是一个二叉堆,但二者的......
  • openstack笔记下
    用ssh登录其他节点:sship地址,退出用logoutopestackserverresize调整云主机类型openstacknetworkcreate网络名--mtu1350 echo"anon_root=/opt" /etc/vsftpd......
  • 直播网站程序源码,JS:判断对象中是否有数据
    直播网站程序源码,JS:判断对象中是否有数据 Object.keys(对象).length可以判断对象中是否有数据,length为0则表示没有数据,length为1则表示有1条数据,以此类推比如: let......