操作DOM对象

suaxi
2020-12-09 / 0 评论 / 74 阅读 / 正在检测是否收录...
核心

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

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

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

获得DOM节点
var h1 = document.getElementsByTagName('h1');
var p1 = document.getElementById('test01');
var p2 = document.getElementsByClassName('test02');
var father = document.getElementById('father');
    
var childrens = father.children[index]; //获取父节点下的子节点
//father.firstChild;
更新节点
<div id="test">

</div>

<script>
    var test = document.getElementById('test');
</script>

操作文本

test.innerText='abc' //修改文本的值
test.innerHTML='<strong>abc</strong>' 解析HTML文本标签

操作JS

test.style.color = 'red'; //属性使用字符串包裹
test.style.fontSize = '18px'; // font-size 转 fontSize驼峰命名
test.style.padding = '2em';
删除节点

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

<div id="father">
    <h1>标题</h1>
    <p id="test01">xxx</p>
    <p class="test02">xxxxx</p>
</div>

<script>
    var self = document.getElementById('test01');
    var father = test01.parentElement;
    father.removeChild(self);

</script>

注:删除多个节点的时候,children是动态变化的

插入节点

在获得DOM节点时,如果这个节点已经存在元素,就不能再使用innerHTML操作,会产生覆盖。

追加:

<p id="test01">数学</p>
<div id="list">
    <p id="test02">语文</p>
    <p id="test03">英语</p>
    <p id="test04">美术</p>
</div>

<script>
    var test01 = document.getElementById('test01'),
        list = document.getElementById('list');
    
    list.appendChild(test01);
</script>

追加前:追加前.png

追加后:追加后.png追加后01.png

创建一个新的标签实现插入
var test01 = document.getElementById('test01'),
    list = document.getElementById('list'),
    //通过js创建一个新的节点
    test05 = document.createElement('p'); //创建一个p标签
test05.id = 'test05';
test05.innerText = '体育';
list.appendChild(test05)
//list.appendChild(test01);

//创建一个标签节点
var script = document.createElement('script');
script.setAttribute('type','text/javascript');
list.appendChild(script);

//创建一个style标签
var style = document.createElement('style'); //创建一个style标签
style.setAttribute('type','text/css');
style.innerHTML = 'body{background-color: yellow}'; //设置标签内容
document.getElementsByTagName('head')[0].appendChild(style);
insertBefore
var test01 = document.getElementById('test01');
var test02 = document.getElementById('test02');
var list = document.getElementById('list');
//要包含的节点.insertBefore(newNode,targetNode)
list.insertBefore(test01,test02);
0

评论 (0)

取消