当前位置:首页 > JavaScript

js实现$()

2026-03-02 03:42:17JavaScript

js实现$()

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实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js防抖和节流实现

js防抖和节流实现

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

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js实现左右滑动

js实现左右滑动

实现左右滑动的 JavaScript 方法 监听触摸事件 通过 touchstart、touchmove 和 touchend 事件来检测用户的手势操作。记录触摸的起始位置和移动距离,判断滑动方向。…