`

如何忘却jQuery,开始使用JavaScript原生API

 
阅读更多

文章源自:http://blog.jobbole.com/52195/

如何忘却jQuery,开始使用JavaScript原生API

JavaScript就在这里随时等候你的召唤,但是也许你还没有准备好如何使用他。为什么不用jQuery呢?因为他很慢并且你的网站真的不需要这些多余的负担

 

我不是来这里争辩原生API和函数库的迥异,开发的时候很难不用到这些神奇的东东。但是我想讨论的是:如果仅为使用个选择器($)或者类似的东西,是否真的有必要加载jQuery。

 

假设咱不是为了简化,每个人用jSomething是因为它支持IE,动画处理和选择器函数。

 

原生等价物

选择元素

// jQuery
var els = $('.el');
 
// Native
var els = document.querySelectorAll('.el');
 
// Shorthand
var $ = function (el) {
  return document.querySelectorAll(el);
}
 
var els = $('.el');
 
// Or use regex-based micro-selector lib
// http://jsperf.com/micro-selector-libraries

 

创建元素

// jQuery
var newEl = $('<div/>');
 
// Native
var newEl = document.createElement('div');
Add event listener
// jQuery
$('.el').on('event', function() {
 
});
 
// Native
[].forEach.call(document.querySelectorAll('.el'), function (el) {
  el.addEventListener('event', function() {
 
  }, false);
});

 

Set/get属性

// jQuery
$('.el').filter(':first').attr('key', 'value');
$('.el').filter(':first').attr('key');
 
// Native
document.querySelector('.el').setAttribute('key', 'value');
document.querySelector('.el').getAttribute('key');
Add/remove/toggle class
// jQuery
$('.el').addClass('class');
$('.el').removeClass('class');
$('.el').toggleClass('class');
 
// Native
document.querySelector('.el').classList.add('class');
document.querySelector('.el').classList.remove('class');
document.querySelector('.el').classList.toggle('class');

 

附加

// jQuery
$('.el').append($('<div/>'));
 
// Native
document.querySelector('.el').appendChild(document.createElement('div'));

 

克隆

// jQuery
var clonedEl = $('.el').clone();
 
// Native
var clonedEl = document.querySelector('.el').cloneNode(true);

 

移除

// jQuery
$('.el').remove();
 
// Native
remove('.el');
 
function remove(el) {
  var toRemove = document.querySelector(el);
 
  toRemove.parentNode.removeChild(toRemove);
}

 

父元素

// jQuery
$('.el').parent();
 
// Native
document.querySelector('.el').parentNode;
Prev/next element
// jQuery
$('.el').prev();
$('.el').next();
 
// Native
document.querySelector('.el').previousElementSibling;
document.querySelector('.el').nextElementSibling;
XHR aka AJAX
// jQuery
$.get('url', function (data) {
 
});
$.post('url', {data: data}, function (data) {
 
});
 
// Native
 
// get
var xhr = new XMLHttpRequest();
 
xhr.open('GET', url);
xhr.onreadystatechange = function (data) {
 
}
xhr.send();
 
// post
var xhr = new XMLHttpRequest()
 
xhr.open('POST', url);
xhr.onreadystatechange = function (data) {
 
}
xhr.send({data: data});

 

这些只是很少的一部分,你可以使用浏览器的console来发现更多的原生的东西或者读读MDN’s JS API reference or WPD’s DOM docs

当然你也可以使用库,看这里-轻量级库可以找到一些应对特定任务的库,但首先要确保如果不用这个库你就不能完成任务,否则-使用native JavaScript.

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    jQuery和JavaScript使用小案例

    学习这些案例时,应重点理解它们是如何利用jQuery的便利性来简化JavaScript代码的,同时也要了解JavaScript的基础语法和原生API,以便在不适用jQuery或者需要更底层控制时能灵活应对。这些案例对于初学者来说是一份...

    jQuery-API.rar_javascript_jquery_jquery api

    虽然jQuery简化了许多JavaScript任务,但现代浏览器对原生API的优化使得直接使用原生方法在性能上可能更优。因此,理解原生JavaScript并与jQuery结合使用,可以提高代码效率。 **七、学习资源** jQuery API.CHM...

    jquery 库与原生javascript 常用方法

    - **易用性**: jQuery的API设计更加简洁,使得代码更易读,而原生JavaScript可能需要更多的代码来完成相同任务。 - **兼容性**: jQuery处理了浏览器差异,使得跨浏览器开发更为便捷,而原生JavaScript在旧版本浏览器...

    jquery API 使用手册

    《jQuery API 使用手册》是开发人员使用jQuery框架进行网页交互和功能实现的重要参考资料。jQuery是一个高效、简洁且易用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作以及Ajax交互等任务。手册...

    javascript 原生Dom对象和jQuery对象的联系和区别

    此外,随着现代浏览器对ES6和新API的支持增强,原生JavaScript的许多功能已经变得和jQuery一样方便,比如`querySelectorAll`和`addEventListener`,这也使得部分开发者转向使用更轻量级的库或直接使用原生JavaScript...

    jQuery1.8.0、W3CSchool、JavaScript API

    例如,jQuery的`$()`选择器可以轻松选取DOM元素,而`$(element).click()`则用于添加点击事件监听器,这比使用原生JavaScript的`addEventListener()`更简洁易懂。 总的来说,jQuery1.8.0、W3CSchool和JavaScript API...

    jquery api, jquery ui api, jquery源码分析

    3. **事件处理(Event Handling)**:jQuery 的事件处理比原生JavaScript更简洁,例如 `click(function(){...})` 用于绑定点击事件,`on()` 方法可以绑定多种事件,`off()` 方法则用于移除事件绑定。 4. **动画...

    jQuery_api和js

    学习jQuery API和JavaScript的结合使用,能够大大提高开发效率,使你能够编写出更简洁、更高效的前端代码。同时,理解JavaScript的基础知识,如变量、函数、对象、闭包等,对于深入理解jQuery的工作原理至关重要。在...

    jquery API -jQueryAPI-100214.chm

    jQuery 的事件处理方式比原生JavaScript更直观。例如,使用 $(selector).click(function() {...}) 可以绑定点击事件,$(selector).on('mouseover', function() {...}) 绑定鼠标悬停事件。同时,$.event....

    JQuery 1.4.4 中文API

    5. **避免在循环中使用jQuery方法**: 在循环内部使用JavaScript原生方法,如`for`循环,可以提高性能。 总结,jQuery 1.4.4中文API为开发者提供了全面的文档支持,帮助他们理解和运用jQuery的各种功能,从而更高效...

    jquery经典示例,jquery与javascript对比

    例如,使用jQuery选择元素时,只需一句`$("#elementID")`就能选取ID为"elementID"的元素,而原生JavaScript则需要使用`document.getElementById("elementID")`。 jQuery的另一个亮点是其强大的动画功能。原生...

    jqueryapi.zip_javascript

    3. **事件处理(Event Handling)**:jQuery 的事件处理比原生 JavaScript 更加简便,如 `$(selector).click(function() {...})` 用于绑定点击事件,`$(document).ready(function() {...})` 用于在文档加载完成后...

    原生js实现jquery函数animate()动画效果的简单实例

    在前端开发中,jQuery提供了一套非常方便的API来实现动画效果,但随着Web标准的发展和性能优化需求的提高,原生JavaScript的方法逐渐受到青睐。通过原生JavaScript实现动画,能够更精确地控制动画过程,并在需要时...

    jquery实例+锋利的jquery+api

    jQuery是一款广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计以及Ajax交互等任务,使得JavaScript编程变得更加简单高效。 在jQuery实例部分,你将学习到如何利用jQuery实现各种实用的功能,比如...

    javascript 原生日历控件

    2. **原生JavaScript**:原生JavaScript意味着不依赖任何外部库或框架,如jQuery、React或Vue.js,而是直接使用JavaScript语言的标准API。这有助于减少代码体积,提高页面加载速度,并增强对不同浏览器的兼容性。 3...

    jquery.form中文API

    这个中文API是原始英文版本的翻译,方便中文使用者理解和应用。下面将详细介绍其中的关键知识点。 1. **ajaxForm**: - `ajaxForm`方法用于添加必要的事件监听器,使表单准备好进行AJAX提交。它本身并不提交表单,...

    jQueryAPI(附源码)

    jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。在本文中,我们将深入探讨jQuery API,结合版本1.3的源码,揭示其核心功能和工作原理。 ### 1. jQuery...

    jquery api网页版(离线)

    4. **事件处理(Events)**:jQuery的事件处理比原生JavaScript更简洁,如`click()`, `mouseover()`, `mouseout()`等。`$(element).on("event", function(){...})`是通用的事件绑定方式。 5. **动画(Effects)**:...

    javascript学习教程和jquery帮助文档及api

    1. **简便的DOM操作**:jQuery提供了一致的API来选择、操作DOM元素,比如`$(selector).method()`,比原生JavaScript更易读写。 2. **链式操作**:jQuery的方法返回的是jQuery对象本身,因此可以连续调用多个方法。 ...

    Jquery中文手册和Api

    jQuery API是开发人员使用jQuery进行网页开发的重要参考资料,提供了丰富的函数和方法,帮助开发者实现各种功能。 在提供的压缩包文件中,我们有三个CHM格式的文件:`jQueryAPI-CHM-080801.CHM`、`jQueryAPI1.3.CHM...

Global site tag (gtag.js) - Google Analytics