JS-DOM

Posted Si人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-DOM相关的知识,希望对你有一定的参考价值。

操作DOM(重点)

核心:浏览器本身就是一个DOM树形结构

DOM的增删改查

  • 更新:更新DOM节点

  • 遍历DOM节点:得到DOM节点

  • 删除:删除一个DOM节点

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

想要操作一个DOM节点就必须先得到这个DOM节点

  1. 获得DOM节点

<div id="father">
   <h1>大标题1</h1>
   <h1>大标题2</h1>
   <p id="p1"> p1</p>
   <p class="p2"> p2</p>
</div>
//对于css中的选择器
let h1=document.getElementsByTagName(\'h1\');
//htmlCollection(2) [h1, h1]0: h11: h1length: 2__proto__: HTMLCollection
let p1=document.getElementById(\'p1\');
//<p id=•"p1">• p1•</p>
let p2=document.getElementsByClassName(\'p2\');
//HTMLCollection [p.p2]
let father=document.getElementById(\'father\');

let childrens=father.childrenn//获取父亲节点下的所有子节点
//father.firstchild
//father.listchild

这是原生的代码,之后会使用jQuery()来替换此类方法

  1. 更新节点

<script>
   let father=document.getElementById(\'father\');
</script>
<div id="father">
</div>

操作文本

  • father.innerText=\'好耶\';

  • father.innerHTML=\'<strong>好耶<strong>\'

操作CSS

father.style.color=\'red\';
father.style.fontSize=\'25px\';
father.style.padding=\'10px\';

在操作css的时候要注意属性要是用字符串包裹,-要转成驼峰命名

  1. 删除节点

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

<script>
   let self=document.getElementById(\'p1\');
   let father=self.parentElement;
   father.removeChild(self)
   
   //删除是一个动态的过程:
father.removeChild(father.children[0]);
father.removeChild(father.children[1]);
father.removeChild(father.children[2]);
</script>

<div id="father">
   <h1>大标题1</h1>
   <h1>大标题2</h1>
   <p id="p1"> p1</p>
   <p class="p2"> p2</p>
</div>

在删除多个节点的时候要注意,删除了一个节点后children的地址会变化,这是一个动态的过程

  1. 插入节点

插入节点首先需要获得DOM节点,如果这个节点是空的,那么通过innerHTML方法就可以增加元素了,但是如果已经有元素了就不能用这种方法来新增,因为这个方法会覆盖原有的数值。

追加:

<p id="js"> javascript</p>
<div id="father">
   <p id="se">javaSE</p>
   <p id="ee">javaEE</p>
   <p id="me">javaME</p>
</div>
let js=document.getElementById(\'js\');
let father=document.getElementById(\'father\');

father.appendChild(js);

看效果更像是移动的一个p标签的位置,但是这个p标签可以通过JS来动态创建,实际上就是创建一个再插入到需要的位置

let newP=document.createElement(\'p\');//创建一个p标签
newP.id=\'newp\';
newP.innerText=\'新的P标签\';
fatehr.appendChild(newP);

//创建一个标签节点
let myScript=document.createElement(\'scropt\');
myScript.setAttribute(\'type\',\'text/javascript\');//这是一种万能的创建方式,该属性可以设置任意得到值 key:value

let body=document.getElementsByTagName(\'body\')[0];//获取body是数组所以需要用下标来精确
body.setAttribute(\'style\',\'background:pink\');

insert

let ee=document.getElementById(\'ee\');
let js=document.getElementById(\'js\');
let father=document.getElementById(\'father\');
//insertBefore(要插入的节点,要插入节点的位置)
father.insertBefore(js,ee);

 

以上是关于JS-DOM的主要内容,如果未能解决你的问题,请参考以下文章

JS-DOM

js-Dom知识大纲

js-Dom知识大纲

JS-DOM事件

JS-Dom概念

JS-DOM节点属性