专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

操作DOM对象

操作DOM对象

目录

  • 操作DOM对象
      1. 核心
      1. 获得Dom节点
      1. 更新节点
        1. 操作文本
        1. 操作CSS
      1. 删除节点
      1. 插入节点
        1. 追加(将已存在的节点移到后面)
        1. 创建一个新的标签,实现插入
        1. insertBefore

DOM:文档对象模型

41_1.png

1. 核心

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

  • 更新:更新Dom节点
  • 遍历Dom节点:得到Dom节点
  • 删除:删除一个Dom节点
  • 添加:添加一个新的节点

2. 获得Dom节点

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

//对应CSS选择器
let h1 = document.getElementsByTagName('h1');
let p1 = document.getElementById('p1');
let p2 = document.getElementsByClassName('p2');
let father = document.getElementById('father');
let children = father.children;     //获取父节点下的所有子节点
// father.firstChild;
// father.lastChild;

这是原生代码,之后我们尽可能使用jQuery

3. 更新节点

<div id="id1">
    123
</div>

<script>
    let id1 = document.getElementById('id1');
</script>

1. 操作文本

    id1.innerText='改变后' ;       //修改文本的值

    id1.innerHTML='<strong>123</strong>'    ;//可以解析HTML文本标签

2. 操作CSS

id1.style.color = 'red';
id1.style.fontSize = '200px';       //注意此处为驼峰命名,并不是CSS中的下划线命名
id1.style.padding = '2em';

4. 删除节点

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

<div id="father">
    <h1>标题一</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>

<script>
    let self = document.getElementById('p1');   //要删除的当前节点
    let father = p1.parentElement;              //找到其父节点
    father.removeChild(self);                   //通过父节点(father)删除该节点(self)

    //删除是一个动态的过程:
    //以下的操作是错误的
    father.removeChild(father.children[0]);
    father.removeChild(father.children[1]);
    father.removeChild(father.children[3]);
</script>

注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定要注意!

5. 插入节点

我们获得了某个DOM节点,假设这个Dom节点是空的,我们通过innerHTML就可以增加一个元素了。但是这个DOM节点已经存在元素时,我们就不能这么干了,会产生覆盖

1. 追加(将已存在的节点移到后面)

<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>
    let
        js = document.getElementById('js');
        list = document.getElementById('list');
    list.appendChild(js);           //追加到后面
</script>

2. 创建一个新的标签,实现插入

<script>
    let
        js = document.getElementById('js');     //已存在的节点
        list = document.getElementById('list');
    //通过JS 创建一个新的节点
    let newP = document.createElement('P');     //创建一个P标签
    newP.id = 'newP';
    newP.innerText = 'Hello, administrator!';
    list.appendChild(newP);
    //创建一个标签节点 (通过这个属性,可以设置任意的值)
    let myScript = document.createElement('script');
    myScript.setAttribute('type', 'text/javascript');
    //可以创建一个style标签
    let myStyle = document.createElement('style');                  //创建了一个空style标签
    myStyle.setAttribute('type', 'text/css');
    myStyle.innerHTML = 'body{background-color: red;}';             //设置标签内容
    document.getElementsByTagName('head')[0].appendChild(myStyle);  //将设置好的标签插入到head节点下,注意,TagName返回的是一个数组!

</script>

3. insertBefore

let ee = document.getElementById('ee');
let js = document.getElementById('js');
//要包含的节点.insertBefore(newNode,targetNode)
let list = document.getElementById('list');
list.insertBefore(js,ee);

文章永久链接:https://tech.souyunku.com/46577

未经允许不得转载:搜云库技术团队 » 操作DOM对象

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们