0
点赞
收藏
分享

微信扫一扫

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作

Javascript(笔记27) - DOM基本操作 - 节点的增插删替换操作


节点的新增

document.createElement()

新增或创建一个元素节点

var div = document.createElement("div");
var p = document.createElement("p");
var span = document.createElement("span");

要创建什么元素节点,就写那个节点的标签;要创建 div 就写 div;创建 p 就写 p ; 以此类推;

创建的元素目前存在变量里,还没有到页面上去;

使用 document.body.appendChild() 把他追加到 body 里面;

document.body.appendChild(div);

这样页面里就多了一个刚创建的 div ;

也可以给 div 里追加一点内容;

div.innerHTML = 123;

document.createTextNode()

创建文本节点

var text = document.createTextNode("hello world");

再把这个文本节点放到上面的 div 中;

var div = document.createElement('div');
var text = document.createTextNode("hello world");
document.body.appendChild(div);
div.appendChild(text);

我们再多建一个;

var div = document.createElement('div');
var text = document.createTextNode("hello world");
var span = document.createElement('span');
document.body.appendChild(div);
div.appendChild(text);
div.appendChild(span);
var demoText = document.createTextNode('javascript');
span.appendChild(demoText);

看下HTML结构:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作


如果这个时候,我们再把页面里面已经有部分插入到新建的标签里面;

var em = document.createElement('em');
span.appendChild(em);
em.appendChild(text);

看下HTML结构:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_02

text 被剪切走了。


document.createComment()

创建注释节点

var comment = document.createTextNode("this ia comment");  // 这里得有内容

创建注释节点的时候,要写内容,没有内容是看不到的;


节点的插入

parentnode.appendChild()

在元素节点内插入节点,类似于 push ,插入到节点的后面;

var div = document.createElement("div");
document.body.appendChild(div);

把页面已有的 span 元素,插入到已有的 div 里,行么?

<div></div>
<span></span>

把页面中的 span 和 div  选出来, 再把 span 插入到 div 里;

var div = document.getElementsByTagName('div')[0];
var span = document.getElementsByTagName('span')[0];
div.appendChild(span);

看下结构:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_03

本来是兄弟结构,现在变父子结构了;


ParentNode.insertBefore(a,b)

父级调用,把 a 插入到 b 的前面;

<div>
<span></span>
</div>

现在要在 div 里面插入一个 em ,要把 em 放在 span 的前面;

var div = document.getElementsByTagName('div')[0];
var span = document.getElementsByTagName('span')[0];

var em = document.createElement('em');
div.insertBefore(em,span);

先把  div  和 span 选出来;再新建一个 em 元素节点;再把 em 节点插入到 span 前面;

看下HTML:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_04

再创建并插入一个 i ,放在 em  的上面;

var i = document.createElement('i');
div.insertBefore(i,em);

看下HTML:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_javascript_05

看起来是比较简单的;


节点的删除

parent.removeChild()

父级节点调用,杀了儿子元素节点;

用上面新建的 HTML 结构,我们把 div 里的 i 删除掉;

div.removeChild(i);

直接这么干就可以,看下HTML: 

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_javascript_06

注意:removeChild  不只是把节点删除,还可以返回这个被删除的节点,相当于剪切;

如果我们把返回打印的话: 

var temp = div.removeChild(i);
console.log(temp);

看下控制台:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_07

我们新建一个 文本节目,放在 span 里,再把这个文本节点删除:

var text = document.createTextNode("hello world");
span.appendChild(text);

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_08

再把这个文本节点删除:

span.removeChild(text);

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_09

child.remove()

自己调用,杀了自己;

现在页面里还剩下三个元素节点,其中的 em  和 span 想自己解决:

em.remove();
span.remove();

看下HTML:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_节点操作_10

这种 remove() 方法,是真删除,删除就没有了;

节点的替换

parent.replaceChild(new,origin)

父级调用,拿新的 new 元素,替换老的 origin 元素;

现在创建两个新的元素节点: p 和 strong ,把 p 元素节点插入到 div 中;

var p = document.createElement('p');
var strong = document.createElement('strong');
div.appendChild(p);

看下HTML:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_javascript_11

然后用 strong 替换 p ;

div.replaceChild(strong,p);

看下HTML:

Javascript(笔记27) - DOM基本操作 - 节点的新增、插入、删除、替换操作_javascript_12

注意:这里的 strong  也是被剪切出来的,可以被返回。


常用的几个方法:

document.createElement()

document.appendChild()

ParentNoe.insertBefore(a,b)

parent.removeChild()

child.remove()



举报

相关推荐

0 条评论