当前位置:首页 > JavaScript

js实现jq

2026-03-14 03:42:03JavaScript

JavaScript 实现 jQuery 功能

jQuery 是一个流行的 JavaScript 库,主要用于简化 DOM 操作、事件处理、动画和 AJAX 等功能。以下是用原生 JavaScript 实现 jQuery 常见功能的方法。

选择器功能

jQuery 的核心功能之一是选择器,通过 $() 快速选择 DOM 元素。原生 JavaScript 提供了类似的方法:

// jQuery 方式
$('.class-name');

// 原生 JavaScript 方式
document.querySelectorAll('.class-name');

querySelectorAll 返回一个 NodeList,类似于 jQuery 对象。如果需要单个元素,可以使用 querySelector

DOM 操作

jQuery 提供了丰富的 DOM 操作方法,以下是原生实现:

// 创建元素
const div = document.createElement('div');

// 添加类名
div.classList.add('new-class');

// 设置属性
div.setAttribute('id', 'my-div');

// 插入元素
document.body.appendChild(div);

// 移除元素
div.remove();

事件绑定

jQuery 的事件绑定非常简洁,原生 JavaScript 也能实现类似功能:

// jQuery 方式
$('#button').on('click', function() {
  console.log('Clicked');
});

// 原生 JavaScript 方式
document.getElementById('button').addEventListener('click', function() {
  console.log('Clicked');
});

AJAX 请求

jQuery 的 AJAX 功能可以通过 fetch API 或 XMLHttpRequest 实现:

// jQuery 方式
$.ajax({
  url: 'https://api.example.com/data',
  method: 'GET',
  success: function(data) {
    console.log(data);
  }
});

// 原生 JavaScript 方式 (fetch API)
fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data));

动画效果

jQuery 的动画功能可以通过 CSS 过渡或原生 JavaScript 实现:

// jQuery 方式
$('#box').animate({ opacity: 0.5 }, 1000);

// 原生 JavaScript 方式
const box = document.getElementById('box');
box.style.transition = 'opacity 1s';
box.style.opacity = '0.5';

链式调用

jQuery 的链式调用可以通过返回对象自身实现:

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

// 使用方式
$('#box').addClass('highlight').css('color', 'red');

封装成迷你 jQuery 库

可以将上述功能封装成一个简单的库:

js实现jq

function $(selector) {
  const elements = document.querySelectorAll(selector);
  return {
    elements,
    on(event, callback) {
      this.elements.forEach(el => el.addEventListener(event, callback));
      return this;
    },
    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;
    },
    html(content) {
      if (content === undefined) {
        return this.elements[0].innerHTML;
      }
      this.elements.forEach(el => el.innerHTML = content);
      return this;
    }
  };
}

通过以上方法,可以用原生 JavaScript 实现 jQuery 的核心功能。虽然原生代码可能稍显冗长,但现代 JavaScript 已经提供了很多便捷的 API,足以替代 jQuery 的大部分功能。

标签: jsjq
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现vue路由

js实现vue路由

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

js如何实现继承

js如何实现继承

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

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…