補全一段jQuery程式碼

yangdepp發表於2019-02-16

補全下面程式碼:

    window.jQuery = ???
    window.$ = jQuery
    
    var $div = $(`div`)
    $div.addClass(`red`) // 可將所有 div 的 class 新增一個 red
    $div.setText(`hi`) // 可將所有 div 的 textContent 變為 hi

補全後:

    window.jQuery = function (nodeOrSelector) {
      let nodes = {}

      let temp = document.querySelectorAll(nodeOrSelector) //偽陣列
      for (let i = 0; i < temp.length; i++) {
        nodes[i] = temp[i]
      }
      nodes.length = temp.length

      // 設定所有 div 的 textContent 
      nodes.setText = function (text) {
        for (let i = 0; i < nodes.length; i++) {
          nodes[i].textContent = text
        }
      }
      // 為所有 div 新增 class
      nodes.addClass = function (className) {
        for (let i = 0; i < nodes.length; i++) {
          nodes[i].classList.add(className)
        }
      }

      return nodes
    }
    window.$ = jQuery
    var $div = $(`div`)
    $div.addClass(`red`) // 可將所有 div 的 class 新增一個 red
    $div.setText(`hi`) // 可將所有 div 的 textContent 變為 hi

主要思路是,window.$ = jQuery所以window.jQuery要等於一個函式,這個函式接收一個引數,返回一個物件,返回的物件包含兩個方法,這兩個方法可以新增text文字和新增class類

相關文章