3

补全下面代码:

    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类


yangdepp
446 声望21 粉丝

只有那些疯狂的人才能引起我的兴趣,那些人疯狂地生活,疯狂地表达,同时对一切事物心怀渴望,他们毫无倦意,不屑于陈词滥调,只是燃烧,燃烧,燃烧。