2017-3-1

2017-03-02  本文已影响0人  龍太

1.拿一个节点里的文本时,不要直接nodevalue,如果该节点的子节点是标签,那么< > /会被转义,这种情况使用innerText

2.对于类数组元素是不可以使用array类型的forEach方法的,这时应该用call方法来调用forEach,而且在这里要注意,不能这样: Arrary.forEach.call(params),应该[].forEach.call()
昨天的demo,

//items是一个HTML collections 所以不能直接使用forEach方法,对于类数组对象
//应该用call
[].forEach.call(items, function(item,index,array) {
     
     data.push([item.innerText.slice(0,2),Number(item.innerText.slice(7,9))]);

});

我按常规使用第一种方式时报错
3.input标签里的值是string类型,当判断输入框为空值时可使用(value==="")这样的语句
4.昨天试了下策略模式,非常的好用 以后再遇到分支判断多的情况,优先考虑策略模式

//策略模式
var strategies = {
    "shift":function  (value) {
            arr.shift(value);
            render();
    },
    "push":function  (value) {
            arr.push(value);
            render();
    },
    "unshift":function  (value) {
            arr.unshift(value);
            render();
    },
    "pop":function  (value) {
            arr.pop(value);
            render();
    }
};

var handleItem = function  (model) {
    var value = document.getElementById('dataInput').value;
    console.log(typeof value);
    if (value === "") {
        return;
    } else {
        strategies[model](value);
    }
    
}
上一篇 下一篇

猜你喜欢

热点阅读