当前位置:首页 > JavaScript

js实现jq

2026-02-01 05:23:05JavaScript

使用原生 JavaScript 实现 jQuery 的部分功能

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

选择元素

jQuery 使用 $() 来选择元素,原生 JavaScript 可以使用 querySelectorquerySelectorAll 实现类似功能。

// jQuery
$('.className');
$('#idName');

// 原生 JavaScript
document.querySelector('.className');
document.querySelector('#idName');
document.querySelectorAll('.className');

事件绑定

jQuery 使用 on() 方法绑定事件,原生 JavaScript 使用 addEventListener

// jQuery
$('#button').on('click', function() {
  console.log('Button clicked');
});

// 原生 JavaScript
document.querySelector('#button').addEventListener('click', function() {
  console.log('Button clicked');
});

修改 CSS

jQuery 使用 css() 方法修改元素的样式,原生 JavaScript 可以直接操作 style 属性。

js实现jq

// jQuery
$('#element').css('color', 'red');

// 原生 JavaScript
document.querySelector('#element').style.color = 'red';

类操作

jQuery 提供了 addClass()removeClass()toggleClass() 方法,原生 JavaScript 可以使用 classList

// jQuery
$('#element').addClass('active');
$('#element').removeClass('active');
$('#element').toggleClass('active');

// 原生 JavaScript
document.querySelector('#element').classList.add('active');
document.querySelector('#element').classList.remove('active');
document.querySelector('#element').classList.toggle('active');

获取和设置属性

jQuery 使用 attr() 方法获取或设置属性,原生 JavaScript 使用 getAttributesetAttribute

js实现jq

// jQuery
$('#element').attr('data-value');
$('#element').attr('data-value', 'newValue');

// 原生 JavaScript
document.querySelector('#element').getAttribute('data-value');
document.querySelector('#element').setAttribute('data-value', 'newValue');

AJAX 请求

jQuery 使用 $.ajax() 发送 AJAX 请求,原生 JavaScript 可以使用 fetchXMLHttpRequest

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

// 原生 JavaScript (使用 fetch)
fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

动画效果

jQuery 提供了 animate() 方法,原生 JavaScript 可以使用 CSS 动画或 requestAnimationFrame

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

// 原生 JavaScript (使用 CSS)
document.querySelector('#element').style.transition = 'opacity 1s';
document.querySelector('#element').style.opacity = '0.5';

链式调用

jQuery 支持链式调用,原生 JavaScript 可以通过返回对象本身实现类似功能。

// jQuery
$('#element').css('color', 'red').addClass('active');

// 原生 JavaScript (自定义实现)
function $(selector) {
  const element = document.querySelector(selector);
  return {
    css: function(property, value) {
      element.style[property] = value;
      return this;
    },
    addClass: function(className) {
      element.classList.add(className);
      return this;
    }
  };
}

$('#element').css('color', 'red').addClass('active');

总结

原生 JavaScript 可以实现 jQuery 的大部分功能,但需要更多的代码。如果需要简化开发,可以考虑使用现代前端框架如 React、Vue 或 Angular,它们提供了更强大的工具和更好的性能。

标签: jsjq
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

js手势实现

js手势实现

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

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选…

js实现左右滑动

js实现左右滑动

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