Dom的一些知识

想做游戏的,一定要学好这些东西。

html:指整个html文档

innerHTML,title,URL,write;

IE678只支持getElementById;
getElementById()
getElementsByName()
getElementsByTagName()

获取非行间样式:
getComputedStyle()//标准浏览器支持
currentStyle()//IE678浏览器支持

currentStyle.属性名;

function getStyle(ele,haha){
    if(window.getComputedStyle){
        return window.getComputedStyle(ele,null)[haha];
    }else if(ele.currentStyle){
        return ele.currentStyle[haha];
    }
    return null;
}

linear-gradient//渐变

var heihei = ele.currentStyle ? ele.currentStyle : window.getComputedStyle(ele,null);
    return heihei[haha];


var heihei = ele.currentStyle || window.getComputedStyle(ele,null);
    return heihei[haha];




下午:
document.childNodes:子节点的集合,文本节点空格和换行会增加文本节点
document.childNodes[1].children:非标准属性

firstElementChild//标准属性,IE678不支持(支持firstChild);

nextElementSibling//下一个兄弟节点,IE678不支持   previousSibling:下一个兄弟节点,

有Element的是标准属性,但是IE678不支持;可以过滤掉空白

parentNode获取父类节点

层级:父节点,子节点,兄弟节点
类型:元素节点、属性节点、文本节点、注释节点、document节点



晚上:
nodeType 查看节点类型;
9document(对象)节点;
8:注释节点
3:空节点
2:属性节点
1:元素节点
nodeName 查看节点的名称;
nodeValue 查看节点的值。

取第一个元素:
    var obj = ele.firstElementChild || ele.firstChild;
    if(obj.nodeType == 3){
        return obj.nextSibling;
    }
    if(obj.nodeType == 1){
        return obj;
    }

var list = ele.childNodes;
if(list.length>0){
    var length = list.length;
    for(var i = 0;i < length;i++){
        if(list[i].nodeType == 1){
            return list[i];
            break;
        }
    }
}

var nodes = ele.children;
if(nodes.length>0){
    return children[0];
}


attributes 获取当前节点的所有属性的集合