当前位置:首页 > 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 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…