当前位置:首页 > 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实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…