当前位置: 首页 > news >正文

7、操作DOM对象(重点)

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

  • 更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容;

  • 遍历:遍历该DOM节点下的子节点,以便进行进一步操作;

  • 添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点;

  • 删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有子节点。

7.1 获得节点

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

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

这是原生代码,之后我们尽量都使用 jQuery

7.2 更新节点

<div id="div1"></div>
<script>
	var div1 = document.getElementById('div1');
</script>
  • 操作文本

    • div1.innerText = '123' 修改文本的值
    • div1.innerHTML = '<strong>123</strong>' 可以解析HTML文本标签
  • 操作JS

    div1.style.color = 'red' //属性使用''包裹
    div1.style.fontSize = '100px'
    div1.style.padding = '1em'
    

7.3 删除节点

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

<div id="father">
  <h1>标题一</h1>
  <p id="p1">p1</p>
  <p class="p2">p2</p>
</div>
<script>
    var self = document.getElementById('p1');
	var father = p1.parentElement;
	father.removeChild(self);
    //删除是一个动态的过程,删除后,下标是会发生变化的
    father.removeChild(father.children[0])
    father.removeChild(father.children[1])
    father.removeChild(father.children[2])
</script>

在这里插入图片描述

7.4 插入节点

直接插入

当我们获得了某个DOM节点,假设这个DOM节点是空的, 我们通过innerHTML就可以增加一个元素,但是如果这个DOM节点已经存在元素了我们就不能这么干了,会发生覆盖。此时我们要使用追加操作appendChild()

appendChild() 追加插入

<p id="js">JavaScript</p>
<div id="list">
  <p id="se">JavaSE</p>
  <p id="ee">JavaEE</p>
  <p id="web">JavaWeb</p>
</div>

<script>
	var js = document.getElementById('js');
	var list = document.getElementById('list');
    list.appendChild(js); //追加到后面
</script>

追加后得到的代码

在这里插入图片描述

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

<script>
    var js = document.getElementById('js'); //已经存在的节点
    var list = document.getElementById('list');
    //list.appendChild(js); //追加到后面

    //通过JS创建一个新的节点
    //创建一个p标签
    var newP = document.createElement('p');
    newP.id = 'newP';
    newP.innerText = 'hello,newP';
    list.appendChild(newP);

    //创建一个标签节点(通过这个属性,可以设置任意的值)
    var myScript = document.createElement('script');
    myScript.setAttribute('type','text/javascript');

    var myStyle = document.createElement('style'); //创建一个空的style标签
    myStyle.setAttribute('type','text/css');
    myStyle.innerHTML = 'body{background-color:pink;}'; //设置标签内容
    document.getElementsByTagName('head')[0].appendChild(myStyle);
</script>

insertBefore()

var js = document.getElementById('js');
var ee = document.getElementById('ee');
//要包含的节点 insertBefore(新节点,目标节点);
ee.insertBefore(js,ee);

相关文章:

  • 重庆网站制作套餐/建网站需要多少钱
  • 比较好的响应式设计网站/近期新闻事件
  • 网站建设栏目分级/seo优化师
  • 专业网站制作设/深圳网站建设微信开发
  • 网站制作怎么报价/如何注册网站免费注册
  • 苏州好的做网站的公司有哪些/石家庄最新消息
  • 26.Isaac教程--导航算法
  • DW 2023年1月Free Excel 第四次打卡 逻辑判断函数
  • 2022秋招算法岗面经题:训练模型时loss除以10和学习率除以10真的等价吗(SGD等价,Adam不等价)
  • ramparser
  • Exceeded limit on max bytes to buffer : 262144
  • @PropertySource与@ImportResource的区别
  • python-MySQL数据库基础(三)MySQL与python交互
  • ATAC-seq分析:TSS 信号(7)
  • JAVA并发终章-核心源码调试
  • pandas案例——预处理部分地区数据
  • Python离线下载whl文件,xxx.wh1 is not a supported wheel on this platform
  • PromQL之选择器和运算符