当前位置:首页 > JavaScript

js实现$

2026-04-05 04:36:33JavaScript

js实现$

js实现$

实现 jQuery 的 $ 函数

在 JavaScript 中,$ 是一个合法的函数名,jQuery 通过它作为核心选择器的入口。以下是几种实现方式:

基础选择器实现

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

类 jQuery 链式调用实现

function $(selector) {
  const elements = document.querySelectorAll(selector);

  return {
    css: function(property, value) {
      elements.forEach(el => el.style[property] = value);
      return this;
    },
    hide: function() {
      elements.forEach(el => el.style.display = 'none');
      return this;
    },
    show: function() {
      elements.forEach(el => el.style.display = '';
      return this;
    }
  };
}

支持 DOM 就绪事件

function $(selectorOrFunction) {
  if (typeof selectorOrFunction === 'function') {
    document.addEventListener('DOMContentLoaded', selectorOrFunction);
    return;
  }

  return document.querySelectorAll(selectorOrFunction);
}

完整迷你 jQuery 实现

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

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

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

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

  return function(selector) {
    const elements = document.querySelectorAll(selector);
    return new MiniQuery(elements);
  };
})();

使用方法示例

// 选择元素
$('.my-class').css('color', 'red');

// 事件绑定
$('#my-button').on('click', () => alert('Clicked'));

// DOM 就绪
$(function() {
  console.log('DOM is ready');
});

这些实现展示了如何构建类似 jQuery 的核心功能,包括选择器、链式调用和 DOM 操作。实际项目中如果需要完整功能,建议直接使用 jQuery 或现代替代方案如 Zepto.js。

标签: js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现防洪

js实现防洪

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

节流js实现

节流js实现

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

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…