一.节点创建删除
document.createElement()
var div = document.createElement('div');
div.innerHTML=123;
document.body.appendChild(div);
(2).创建文本节点
document.createTextNode()
var text= document.createTextNode(' ');
document.body.appendChild(text);
(3).创建注释节点
document.createComment()
var comment = document.createComment('我是注释')
document.body.appendChild(comment);
(4).增加子节点
appendChild()
var p = document.createElement('p');
document.body.appendChild();
(5).插入元素
x.insertBefore(a,b)
var div = document.getElementsByTagName('div')[0];
var p = document.getElementsByTagName('p')[0];
var a = document.createElement('a');
a.href='';
div.insertBefore(a,p);
(6).删除元素
父节点.removeChild(子节点)
div.removeChild(p);
<p>我是段落标签</p>
节点.remove()
(7).替换元素
父节点.replaceChild(new, origin)
var div = document.getElementsByTagName('div')[0];
var h1 = document.getElementsByTagName('h1')[0];
var h2 = document.createElement('h2');
div.replaceChild(h2,h1);
(8).创建文档碎片
var oUl=document.getElementById('list');//变量前面加o则为明显告诉别人这是元素对象
通过createElement阻止回流
每次循环先放到oDiv中 最后再放到节点树中 避免HTML回流计算几何因为通过createElement创建出的元素不在树中
var oUl=document.getElementById('list');
var oDiv=document.createElement('div');
for(var i = 0; i<1000;i++){
var oLi = document.createElement('li');
oLi.innerHTML=i+",这是第"+i+'个项目';
oLi.className="list-item"
//oLi.setAttribute('class','list-item')
oDiv.appendChild(oLi);
}
oUl.appendChild(oDiv);
创建文档碎片
var oUl=document.getElementById('list');
var oFrag=document.createDocumentFragment();
for(var i = 0; i<1000;i++){
var oLi = document.createElement('li');
oLi.innerHTML=i+",这是第"+i+'个项目';
oLi.className="list-item"
//oLi.setAttribute('class','list-item')
oFrag.appendChild(oLi);
}
oUl.appendChild(oFrag);
字符串阻止回流
var oUl=document.getElementById('list'),
list='';
for(var i = 0; i<1000;i++){
list+='<li>'+i+'</li>'
}
oUl.innerHTML=list;
二.元素属性设置获取
(1).innerHTML
查询
div.innerHTML " <h1>标题标签</h1> "
修改
增加
添加元素
div.innerHTML='<a href=""/>' '<a href=""/>'
(2).innerText
添加元素
div.innerText='<a href=""/>'
'<a href=""/>'
<a href=""/ >
火狐老版本不支持 得换textContent,但是Ie的老版本不支持textContent
(3).setAttribute/getAttribute
div.setAttribute('id','box');
var attr=div.getAttribute('calss')
三.节点属性
(1).html5中自定义属性
<p data-name-"zza" data-age="18"></p>
读取
p.dataset.name //zza
p.dataset.age //18
p.getAtrribute('data-name')
p.getAtrribute('data-age')
写入
p.setAttribute('data-age','32')
本文详细介绍了如何使用JavaScript在DOM中创建节点(div、text、注释),以及appendChild、insertBefore、removeChild等操作,同时讨论了元素属性设置、获取技巧,如innerHTML、innerText、setAttribute,以及HTML5自定义data-*属性的应用。还涵盖了如何通过文档碎片和字符串防止HTML回流,提升性能。

1875

被折叠的 条评论
为什么被折叠?



