创建dom元素

var oLi = document.creteElement('li'); //创建li
var aLi = oUl.getElementsByTagName('li');
oLi.innerHTML = oTxt.value
oUl.appendChild(oLi)

父节点.insertBefore(子节点,谁之前)
oUl.insertBefore(oLi,aLi[0]) 如果一个都没有就会出错

if(aLi.length==0)

{
oUl.appendChild(oLi)
}else{
oUl.insertBefore(oLi,aLi[0])
}
window.onload = function()
{
var oUl = document.getElementById("ul1");
var aLi = oUl.getElementsByTagName('li');
var oBtn = document.getElementById('btn1');
var oTxt = document.getElementById('txt');
oBtn.onclick = function()
{
var oLi = document.createElement('li');
oLi.innerHTML = oTxt.value;
if(aLi.length>0)
{
oUl.insertBefore(oLi,aLi[0]);
}else{
oUl.appendChild(oLi);
}

}
}
删除 removeChild(子节点)

oUl.remove(this.parentNode)
<script>
window.onload = function()
{
var oUl = document.getElementById("ul1");
var aLi = oUl.getElementsByTagName('li');
var oA = oUl.getElementsByTagName('a');
for(var i=0;i<oA.length;i++)
{
oA[i].onclick = function(){
oUl.removeChild(this.parentNode)
}
}

}
</script>

文档碎片,提高文档效率的(理论上)

new Date().getTime();
时间戳

createDocumentFragment
实际上还不如之前的那种

dom1 dom2

火狐是最标准

dom的childNodes 是会包含txt文本节点

nodeType 节点类型 配合使用
3 文本节点
1 元素节点 标签节点

<script>
window.onload = function(){
var oUl = document.getElementById('ul1');
for(var i=0;i<oUl.childNodes.length;i++)
{

if(oUl.childNodes[i].nodeType == 1)
{
oUl.childNodes[i].style.background = "red"
}

}
}
</script>

children 兼容版本的childNodes
<script>
window.onload = function(){
var oUl = document.getElementById('ul1');
for(var i=0;i<oUl.children.length;i++)
{

oUl.children[i].style.background = "red"

}
}
</script>
父节点
parentNode
<script>
window.onload = function(){
var oA = document.getElementsByTagName('a');
for(var i=0;i<oA.length;i++)
{
oA[i].onclick = function(){
this.parentNode.style.display="none";
}
}
}
</script>

offsetParent 定位的父集

firstChild 火狐下用
firstElementChild

lastChild

var oFirst = oUl.firstElementChild || oUl.firstChild

兄弟节点
nextSibling nextElementSibling
prviousSibling

操作元素属性:

通过id操作 document.getElementById

dom方式操作
otxt.setAttribute('value',"22");
getAttribute('id')
removeAttribute

用className 选择元素
document.getElementsByClassName
var getElementsByClass = function(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;

最新文章

  1. MySQL引擎、索引和优化(li)
  2. POJ 1273 Drainage Ditches题解——S.B.S.
  3. python中文字符乱码(GB2312,GBK,GB18030相关的问题)
  4. SQL加权限
  5. BeanShell Assertion in Jmeter
  6. WPF:类型转换器的实现
  7. 【转】lonekight@xmu&#183;ACM/ICPC 回忆录
  8. J-Link clone问题
  9. js数组到后台转 list数组
  10. Core Java Volume I — 3.1. A Simple Java Program
  11. align=absMiddle属性设置
  12. 深入浅出ShellExecute
  13. redhat mysql 远程开启
  14. libCURL动态分配buffer——节约内存
  15. IOS 消息
  16. video标签
  17. 如何在仅主机模式下ping通网路上网
  18. Java SpringMVC 定时任务
  19. c#上位机与三菱PLC(FX3U)串口通讯
  20. 微信小程序地图控件篇 ---自定义图标被地图覆盖的问题

热门文章

  1. matplotlib绑定到PyQt5(无菜单)
  2. Kafka系列三 java API操作
  3. 深入浅出js中的this
  4. 关于Memcached 你了解多少?
  5. Springboot日记——核心编码篇
  6. java查询几个菜单下的所有下级菜单
  7. Java 集合基础知识 List/Set/Map
  8. php从入门到放弃系列-01.php环境的搭建
  9. 【Coursera-ML-Notes】线性回归(上)
  10. md5sum命令详解