前端

[jQuery]之封装函数

2019-06-21  本文已影响0人  是苏菇凉呀

本文介绍封装实现addClass()与text()方法。

window.jQuery = function (nodeOrSelector) {
        let nodes = {};
        if (typeof nodeOrSelector === 'string') {
            node = document.querySelectorAll(nodeOrSelector);   //伪数组
            for(let i = 0; i < node.length; i++) {
                nodes[i] = node[i];
            }
            nodes.length = node.length;
        } else if (nodeOrSelector instanceof Node) {
            nodes = { '0': nodeOrSelector, length: 1 }   //跟上面保持一致
            console.log(nodes)
        }
        nodes.addClass = function (classes) {
            classes.forEach(element => {
                for (let i = 0; i < nodes.length; i++) {
                    nodes[i].classList.add(element)
                }
            });
        }
        nodes.text = function (text) {
            if (text === undefined) {
                var texts = [];
                for (let i = 0; i < nodes.length; i++) {
                    texts.push(nodes[i].innerText);
                }
                return texts;
            } else {
                for (let i = 0; i < nodes.length; i++) {
                    nodes[i].innerText = text;
                }
            }
        }
        return nodes;
}

总结:jQuery中addClass()与text()方法的本质还是调用了DOM的API

上一篇 下一篇

猜你喜欢

热点阅读