jQuery.js 764 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. class jQuery {
  2. constructor(selector) {
  3. this.selector = selector
  4. const res = document.querySelectorAll(selector)
  5. for(let i = 0; i < res.length; i++) {
  6. this[i] = res[i]
  7. }
  8. this.length = res.length
  9. }
  10. get (index) {
  11. return this[index]
  12. }
  13. each (fn) {
  14. for(let i = 0; i < this.length; i++) {
  15. fn(this[i])
  16. }
  17. }
  18. on (type, fn) {
  19. return this.each(function (ele) {
  20. ele.addEventListener(type, fn, false)
  21. })
  22. }
  23. }
  24. const p = new jQuery('p')
  25. console.log(p.get(0))
  26. // 插件
  27. jQuery.prototype.dialog = function (info) {
  28. alert(info)
  29. }
  30. // 造轮子
  31. class myJQuery extends jQuery {
  32. constructor(selector) {
  33. super(selector)
  34. }
  35. // 扩展自己的方法
  36. addClass(className) {
  37. }
  38. style(data) {
  39. }
  40. }