当前位置:首页 > JavaScript

js 实现$方法

2026-02-02 08:34:19JavaScript

实现类似 jQuery 的 $ 方法

在 JavaScript 中实现类似 jQuery 的 $ 方法,可以通过以下方式创建一个简单的 DOM 选择器工具函数:

function $(selector) {
    const elements = document.querySelectorAll(selector);
    return elements.length > 1 ? elements : elements[0];
}

扩展功能版本

更完整的实现可以包含 DOM 操作和事件绑定等常用功能:

js 实现$方法

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

    return {
        elements,

        // CSS 样式操作
        css(property, value) {
            this.elements.forEach(el => {
                el.style[property] = value;
            });
            return this;
        },

        // 事件绑定
        on(event, callback) {
            this.elements.forEach(el => {
                el.addEventListener(event, callback);
            });
            return this;
        },

        // 类名操作
        addClass(className) {
            this.elements.forEach(el => {
                el.classList.add(className);
            });
            return this;
        },

        removeClass(className) {
            this.elements.forEach(el => {
                el.classList.remove(className);
            });
            return this;
        }
    };
}

使用方法示例

// 选择元素并修改样式
$('.my-class').css('color', 'red');

// 绑定点击事件
$('#my-button').on('click', () => {
    console.log('Button clicked');
});

// 添加类名
$('div').addClass('highlight');

支持链式调用

通过在每个方法中返回 this,可以实现 jQuery 风格的链式调用:

js 实现$方法

$('.menu-item')
    .css('color', 'blue')
    .addClass('active')
    .on('mouseover', handleHover);

创建新元素

可以扩展 $ 函数支持创建新 DOM 元素:

function $(param) {
    if (typeof param === 'string' && param.startsWith('<')) {
        const tagName = param.replace(/[<>]/g, '');
        const element = document.createElement(tagName);
        return {
            element,
            appendTo(parentSelector) {
                const parent = document.querySelector(parentSelector);
                parent.appendChild(this.element);
                return this;
            }
        };
    }
    // 原有的选择器逻辑...
}

使用方式:

$('<div>').appendTo('body');

这个实现提供了 jQuery 核心功能的基本框架,可以根据需要进一步扩展更多方法。

标签: 方法js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js实现上传图片

js实现上传图片

使用HTML5的File API实现图片上传 HTML5的File API允许通过JavaScript访问用户选择的文件。需要创建一个文件输入元素,并监听其change事件。 <input t…