zoukankan      html  css  js  c++  java
  • 实现两个jQuery的API(addClass、text)

    目的

    1. 给所有的div添加一个叫“red”的class,为方便看到代码的效果,设置如下css,在设置“red”成功时,文本会变红
      .red{
        color:red;
      }
    2. 将所有的div中的textContent变为“Hi”,HTML代码如下:
    • <!DOCTYPE html>
      <html>
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <div class="item1">选项1</div>
        <div class="item2">选项2</div>
        <div class="item3">选项3</div>
        <div class="item4">选项4</div>
        <div class="item5">选项5</div>
      </body>
      </html>

    正文

    1. 完整代码及思路如下,效果点击这里
      window.jQuery=function(nodeOrSelector){
        //1 新建一个对象nodes
        var nodes = {};
      
        //2 如果nodeOrSelector传入的是字符串(选择器),获取对应的所有的元素放到nodes中(伪对象);
        //2 如果nodeOrSelector传入的是一个节点,放到则把nodeOrSelector放到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
          };
        }
      
        //3 在nodes中添加一个addClass的属性
        nodes.addClass = function(classes) {
          for (var i = 0; i < nodes.length; i++) {
            nodes[i].classList.add(classes);
          }
        };
      
        //4 在nodes中添加一个text的属性,当text没有值时,是获取文本节点,中间有值时是设置文本节点
        nodes.text = function(text) {
          if(text===undefined){
            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;
      
      };
      
      window.$ = jQuery;
      var $div = $('div');
      $div.addClass('red');
      $div.text('Hi'); 
  • 相关阅读:
    洛谷 P2480 [SDOI2010]古代猪文
    [六省联考2017]组合数问题
    数据结构--左偏树(可并堆)
    图论--tarjan求割点
    图论--tarjan缩点
    图论--DFS-SPFA求负环
    图论--tarjan求lca
    洛谷 P2163 [SHOI2007]Tree 园丁的烦恼
    数据结构--主席树(不带修改)
    洛谷 P1712 区间
  • 原文地址:https://www.cnblogs.com/nolaaaaa/p/9092286.html
Copyright © 2011-2022 走看看