当前位置:首页 > JavaScript

js实现$()

2026-03-02 03:42:17JavaScript

js实现$()

实现类似 jQuery 的 $() 函数

要实现类似 jQuery 的 $() 函数,可以通过原生 JavaScript 创建一个简单的 DOM 选择器。以下是几种实现方式:

基础选择器实现

function $(selector) {
  return document.querySelectorAll(selector);
}

增强版实现(支持多种参数类型)

function $(param) {
  if (typeof param === 'string') {
    const elements = document.querySelectorAll(param);
    return elements.length === 1 ? elements[0] : elements;
  }
  if (param instanceof HTMLElement) {
    return param;
  }
  if (typeof param === 'function') {
    document.addEventListener('DOMContentLoaded', param);
  }
  return null;
}

链式操作支持

function $(selector) {
  const elements = document.querySelectorAll(selector);
  return {
    elements,
    css: function(property, value) {
      this.elements.forEach(el => {
        el.style[property] = value;
      });
      return this;
    },
    addClass: function(className) {
      this.elements.forEach(el => {
        el.classList.add(className);
      });
      return this;
    }
  };
}

完整迷你 jQuery 实现

const $ = (function() {
  class MiniQuery {
    constructor(selector) {
      this.elements = document.querySelectorAll(selector);
    }

    css(property, value) {
      this.elements.forEach(el => {
        el.style[property] = value;
      });
      return this;
    }

    addClass(className) {
      this.elements.forEach(el => {
        el.classList.add(className);
      });
      return this;
    }

    on(event, callback) {
      this.elements.forEach(el => {
        el.addEventListener(event, callback);
      });
      return this;
    }
  }

  return function(selector) {
    return new MiniQuery(selector);
  };
})();

这些实现展示了如何从简单到复杂地构建自己的 $() 函数。基础版本只提供选择功能,而完整版本支持链式操作和方法调用。

js实现$()

标签: js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否…