实现一个 jQuery 的 API

两个要点,
1.$(xxx) 首先要判断xxx的类型,如果是节点类型,直接赋值就好了,如果是节点的集合就需要遍历来放入使用,
2.在将setText 和 getText 合并的时候,可以直接判断传入参数的类型为 undefined 那么就是获取text

大胆猜测一下,jQ的链式操作可能就是在方法的末尾返回了this。如下面的代码可以进行 $(xxx).addClass('xxx').addClass('xxxxx')

jsbin

window.jQuery = function (nodeOrSelector) {
  let node = {}
  if (typeof nodeOrSelector === 'string') {
    const list = document.querySelectorAll(nodeOrSelector)
    list.forEach((item, index) => {
      node[index] = item
    })
    node.length = list.length
  } else {
    node[0] = nodeOrSelector
    node.length = 1
  }
  return {
    node,
    addClass (className) {
      for (let i=0;i

你可能感兴趣的:(实现一个 jQuery 的 API)