DOM 相关 - DOM 基础

博客分类: 江河计划

DOM 相关 - DOM 基础

算法

希尔

var arr = [4,2,3,2,3,5,1,0,7,6];
Array.prototype.shellSort = function(){
    var len = this.length,
        temp,
        gap = 1;
    while(gap < len/3){
        gap = gap * 3 + 1;
    }
    for(gap; gap>0; gap=parseInt(gap/3, 10)){
        for(var i=gap; i<len; i++){
            var temp = this[i];
            for(var j=i-gap; j>0 && this[j] > temp; j-=gap){
                this[j+gap] = this[j];
            }
            this[j+gap] = temp
        }
    }
    return this;
}

归并排序

var arr = [4,2,3,2,3,5,1,0,7,6];
Array.prototype.mergeSortRec = function(){
    if (this.length === 1) return this;
    var mid = parseInt(this.length / 2),
        left = this.slice(0, mid),
        right = this.slice(mid);
    return this.merge(left.mergeSortRec(), right.mergeSortRec());
}

Array.prototype.merge = function(left, right){
    var il = 0,
        ir = 0,
        result = [];
    while(il < left.length && ir < right.length){
        if(left[il] < right[ir]){
            result.push(left[il++])
        }else{
            result.push(right[ir++])
        }
    }
    while(il < left.length){
        result.push(left[il++])
    }
    while(ir < right.length){
        result.push(right[ir++])
    }
    return result
}

正则

获取 version 号:/[^_]*(?=\.(js|css))/

舍去两位小数之后: replace(/(^\d*\.\d{2})(\d*)/, '$1')

DOM 基础

nodeType

可能产生的值如下:

// IE 下无效
if(node.nodeType == Node.ELEMENT_NODE)

// 任何浏览器下都有效
if(node.nodeType == 1)

节点间的关系

image

操作节点

查询节点

属性操作

注:node.attributes是一个类数组,会有一堆方法获取属性的节点,