完全没有否定jQuery的意思,jQuery是一个神奇的、非常有用的工具,可以节省我们大量的时间。

但是,有些时候,我们只需要jQuery的一个小功能,来完成一个小任务,完全没有必要加载整个jQuery程序库。下面是一些用简单JavaScript实现jQuery功能特征的代码汇总。当然,这个汇总并不完全,你最好还是看一下《你不需要jQuery(一)

查找搜索(选择器)

按ID查找:

$('#foo')
document.getElementById('foo')

获取Html内容:

$(el).html();
el.innerHTML;

获取属性值:

$(el).attr('tabindex');
el.getAttribute('tabindex');

按class名搜索:

$('.bar')
document.getElementsByClassName('bar')

按标记名搜索:

$('span')
document.getElementsByTagName('span')

按子元素搜索:

$('#foo span')
document.getElementById('foo').getElementsByTagName('span')

搜索特殊元素:

$('html')
document.documentElement $('head')
document.head $('body')
document.body

元素属性操作

获取/设置HTML:

$('#foo').html()
document.getElementById('foo').innerHTML $('#foo').html('Hello, world!')
document.getElementById('foo').innerHTML = 'Hello, world!'

添加/删除/搜索判断class:

$('#foo').addClass('bar')
document.getElementById('foo').className += ' bar ' $('#foo').removeClass('bar')
document.getElementById('foo').className = document.getElementById('foo').className.replace(/\bbar\b/gi, '') $('#foo').hasClass('bar')
document.getElementById('foo').className.search(/\bbar\b/gi) !== -1

元素值:

$('#foo').val()
document.getElementById('foo').value

特效

隐藏/显示操作:

$('#foo').show()
document.getElementById('foo').style.display = '' $('#foo').hide()
document.getElementById('foo').style.display = 'none'

修改CSS样式:

$('#foo').css('background-color', 'red')
document.getElementById('foo').style.backgroundColor = 'red'

事件

页面加载完成(ready)

在jQuery里,我们最常使用的是$(document).ready。对于它,下面是替换方法:

document.onreadystatechange = function() {
if (document.readyState === 'complete') {
// DOM is ready!
}
};

点击事件

$('#foo').click(function() { ... })
document.getElementById('foo').onclick = function() { ... }

AJAX

这个技术我们以后有一篇文章会单独介绍。这里只点一下,就是用fetch()方法。

工具类技术

分析JSON:

jQuery.parseJSON(json)
JSON.parse(json)
 

总结

从上面的代码,我们可以看出,jQuery里的很多功能都可以用很多简单的JavaScript代码实现。jQuery虽然很好用,但它有体积的负担,如果遇到一个问题,你可以用简单的代码实现,而不用去加载jQuery,这岂不是更高效,更实用的方法吗?

转自:http://www.webhek.com/you-do-not-need-jquery2

[转]你不需要jQuery的更多相关文章

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧

    这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...

  3. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  4. jQuery实践-网页版2048小游戏

    ▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...

  5. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  6. jQuery之ajax实现篇

    jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...

  7. 利用snowfall.jquery.js实现爱心满屏飞

    小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...

  8. jQuery的61种选择器

    The Write Less , Do More ! jQuery选择器 1. #id : 根据给定的ID匹配一个元素 <p id="myId">这是第一个p标签< ...

  9. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  10. 浅谈 jQuery 核心架构设计

    jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...

随机推荐

  1. Zero-Copy&sendfile浅析

    一.典型IO调用的问题一个典型的web服务器传送静态文件(如CSS,JS,图片等)的过程如下:read(file, tmp_buf, len);write(socket, tmp_buf, len); ...

  2. 学习 CSS 样式

    1.CSS浮动  :  http://www.cnblogs.com/zhongxinWang/archive/2013/03/27/2984764.html (1)一个重要结论:           ...

  3. Unity3D 更新文件下载器

    使用说明: 1)远端更新服务器目录 Package |----list.txt |----a.bundle |----b.bundle 2)list.txt是更新列表文件 格式是 a.bundle|r ...

  4. java 注解 + 自定义注解的使用

    java中元注解有四个: @Retention @Target @Document @Inherited:  @Retention:注解的保留位置 @Retention(RetentionPolicy ...

  5. iOS 禁止边缘滑动返回

    self.navigationController.interactivePopGestureRecognizer.enabled = NO;

  6. java中方法的重写与重载的区别

    重载: 方法名相同,但是参数必须有区别(参数不同可以使类型不同,顺序不同,个数不同).前提: 同一个类中,方法名相同,参数列表不同的2个或多个方法构成方法的重载 参数列表不同指参数的类型,参数的个数, ...

  7. CookieManager

    CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance() ...

  8. foreach的用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. CodeForces 551E 分块

    题目链接:http://codeforces.com/problemset/problem/551/E 题意:给定一个长度为N的序列. 有2个操作 1 l r v:序列第l项到第r项加v(区间加), ...

  10. 邮箱、手机号、中文 js跟php正则验证

    邮箱正则: jS: var regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; //验证 if(regEmail.te ...