[转]你不需要jQuery
完全没有否定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的更多相关文章
- Angular杂谈系列1-如何在Angular2中使用jQuery及其插件
jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...
- jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧
这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- jquery和Js的区别和基础操作
jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...
- jQuery之ajax实现篇
jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...
- 利用snowfall.jquery.js实现爱心满屏飞
小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...
- jQuery的61种选择器
The Write Less , Do More ! jQuery选择器 1. #id : 根据给定的ID匹配一个元素 <p id="myId">这是第一个p标签< ...
- jquery.uploadify文件上传组件
1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...
- 浅谈 jQuery 核心架构设计
jQuery对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的核心架构设计,以及jQuery 是如何利用javas ...
随机推荐
- python3 爬虫
保存当前cookie到本地 import urllib.request as ur import http.cookiejar as hc url='http://www.xxxx.com/admin ...
- AngularJS 分页
前端源码: <div> <h1>列表页33</h1> <table> <thead> <tr><td>CandiID ...
- iOS 图形处理 Core Graphics Quartz2D 教程
Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘图.变换.颜色管理.脱屏 ...
- 解决log4j:WARN No appenders could be found for logger
这个问题是因为我们的log4j.properties文件配置不够完整,所以我们给它配置齐了就不会再出现这个问题. log4j.properties不完整配置如下: log4j.rootLogger=D ...
- 模拟搭建Web项目的真实运行环境(三)
一.解决Redis出现的RDB权限问题 当你在安装redis的时候,如果是使用超级用户root安装, 开启redis服务的时候没有用超级用户去开启, 在用客户端登录redis,然后使用shutdown ...
- 模拟搭建Web项目的真实运行环境(一)
序言 最近尝试完整搭建一个Web项目的运行环境,总结一下这几个月学到的知识点. 后面的文章主要包括一下几个内容: A. 搭建一个Linux服务器,用来部署Redis.Mongo等数据存储环境: B. ...
- TFS二次开发系列:一、TFS体系结构和概念
TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的 ...
- Yii2 用户登录
在Yii2的basic版本中默认是从一个数组验证用户名和密码,如何改为从数据表中查询验证呢?且数据库的密码要为哈希加密密码验证? 下面我们就一步一步解析Yii2的登录过程. 一. 创建user表模型 ...
- shell不能执行su 后的脚本
问题:在shell脚本中执行“su – 用户名”后,脚本终止执行,并且切换到su 中指定用户名的交互式界面 现象:我在root中执行一个脚本,但是其中的一些命令或脚本必须用oracle用户来执行., ...
- Win10 UI入门RelativePanel
<RelativePanel Background="Black" > <Rectangle x:Name=" RelativePanel.AlignH ...