jQuery~函数封装记1
获取某元素的所有兄弟元素、添加或删除某个元素的class属性
window.jQuery = function (nodeOrSelector) { var node; if (typeof nodeOrSelector === 'string') { node = document.querySelector(nodeOrSelector); } else { node = nodeOrSelector; }//判断输入的内容是不是选择器 return {//返回一个哈希 //获取兄弟元素 getSiblings: function () { var allChild = node.parentNode.children; var array = { length: 0 }; //空伪数组 for (var i = 0; i < allChild.length; i++) { if (allChild[i] !== node) { array[array.length] = allChild[i]; array.length += 1; } } return array; }, //添加或删除某个class属性 addClass: function (classes) { for (var key in classes) { var value = classes[key]; var methodName = value ? 'add' : 'remove'; node.classList[methodName](key); } } } } // window.$ = jQuery // var $xxx = $(item3); // console.log(xxx.getSiblings()); // $xxx.addClass({ // 'a': true, // 'b': false, // 'c': true // })
增删多个元素的class属性,批量修改或获取文本内容
window.jQuery = function (nodeOrSelector) { var nodes = {}//闭包隐藏变量 if (typeof nodeOrSelector === 'string') {//如果输入的是字符串 var temp = document.querySelectorAll(nodeOrSelector)//伪数组 for (var i = 0; i < temp.length; i++) { nodes[i] = temp[i]; } nodes.length = temp.length;//纯净公用属性 } else if (nodeOrSelector instanceof Node) {//如果输入的是个节点 nodes = { 0: nodeOrSelector, length: 1 }//判断输入的内容是不是选择器 } nodes.addClass = function (classes) {//闭包匿名函数 classes.forEach((value) => { for (var i = 0; i < nodes.length; i++) { nodes[i].classList.add(value); } }); } //批量获取或修改文本内容 nodes.text = function (text) { if (text === undefined) { var texts = []; for (var i = 0; i < nodes.length; i++) { texts.push(nodes[i].textContent); } return texts; } else { for (var i = 0; i < nodes.length; i++) { nodes[i].textContent = text; } } } return nodes; } //wondow.$=jQuery // var $node2 = $('ul>li'); // $node2.addClass(['red']); //获取文本 // var $txt= $node2.text(); // console.log(txt); //设置文本 //nodes.text('xxx')