[JS] JavaScript框架(1) jQuery
jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
官网API:
http://api.jquery.com
下载:
NuGet:Install-Package jQuery
知识点:主要功能、版本、基本语法、事件,操作元素,特效,AJAX,扩展$,释放$,遍历,ready/onload区别
先顶后看
1.主要功能
html选取,操作,css操作,事件,特效,遍历,ajax
2.版本
1.x:IE6+(本人测试,部分方法还是不支持IE8及以下)
2.X:IE9+
3.基本语法
$(selector).action()
如:
function func() {
$(this).hide(); //所有div隐藏
}
$('div').click(func);
$('div').bind('click', func); //unbind
$('div').on('click', func); //off bind本质用的就是on
4.事件
jquery和js的事件对象不一样。(包装了一下js对象,originalEvent属性就是js event对象)
事件对象:
type:事件名,如:click
target:触发源,实际点击目标。
currentTarget:触发源,触发事件目标。
<div>
<p>Text</p>
</div>
<script>
$('div').first().click(function (e) {
console.log(e);
})
</script>
阻止冒泡:
<div>text</div>
<div>text</div>
<script>
function func(e) {
console.log(e); //打印事件
e.stopImmediatePropagation(); //阻止所有冒泡
e.stopPropagation(); //阻止父级冒泡
//todo
}
$('div')[1].onclick = func; //js事件
$('div').first().click(func); //jquery事件
</script>
5.操作元素
查、改:text,html,val,attr,css
<p><a>p1</a></p>
<p><a>p2</a></p>
<input type="text" value="v1" />
<input type="text" value="v2" />
<script>
var ps = $('p'); //所有p元素jquery对象
ps.eq(0).text(); //innerText
ps.eq(1).html(); //innerHTML
$('input').val(); //value
</script>
增:
<p> text </p>
<script>
$('p').prepend('prepend'); //向前插入
$('p').append('append'); //向后插入
$('p').before('before'); //向前插入,且换行
$('p').after('after'); //向后插入,且换行
</script>
删:
<div>
<p> text </p>
</div>
<span>通过该位置及样式区别</span>
<script>
$('div').css({ height: '200px', background: '#0094ff' }); //设置div样式
$('div').remove(); //删除元素及子元素
$('div').empty(); //删除子元素
</script>
6.特效
语法:effect(time,func)
<button>显示</button>
<button>隐藏</button>
<button>切换</button>
<div>
</div>
<script>
$('div').css({ height: '100px', background: 'red' });
$('button').eq(0).click(function () {
$('div').show(1000); //显示
$('div').fadeIn(1000); //淡入
$('div').slideUp(1000); //滑动入
})
$('button').eq(1).click(function () {
$('div').hide(1000);
$('div').fadeOut(1000);
$('div').slideDown(1000);
})
$('button').eq(2).click(function () {
$('div').toggle(1000);
$('div').fadeToggle(1000);
$('div').slideToggle(1000);
})
</script>
7.AJAX
语法:$.method(url,data,func)
<script>
$.get('handle.ashx',{ time: new Date().toLocaleString() }, function (data) {
alert(data);
}).error(function (e) {
//todo 出现异常执行
})
</script>
语法:$(selector).load(url,func) //加载文件
语法:$.getScript(url,func) //加载script,本质是$.get( url, undefined, func, "script" );
8.扩展jQuery
通过$.fn作为扩展,可实现链式编程。
<div>text</div>
<script>
$.fn.func = function () {
alert(this); //this为jQuery对象
}
$('div').func();
</script>
9.noConflict
该方法会释放 $ 标识符的控制
<div>text</div>
<script>
var my$ = $.noConflict(); //释放$
my$('div').hide(1000);
//$('div').hide(1000); //无效
</script>
10.css
语法: $(selector).css(name,value) $(selector).css(obj)
常用操作: $(selector).addClass(className) $(selector).removeClass(className) $(selector).toggleClass(className)
$('div').css('width', '200px').css('background', 'blue');
$('div').css({width:'200px',background:'blue'});
11.遍历
遍历元素
子元素: chilrden() find()
父元素: parent() parents() parentUntil(selector)
同级元素:
<script>
var d = $('div');
d.siblings(); //同级所有其他元素
d.next(); //同级下一个元素
d.nextAll(); //同级下面所有元素
d.nextUntil(selector); //同级下面到selector间的所有元素
d.prev(); //同级上一个元素
d.prevAll(); //同级上面所有元素
d.prevUntil(selector); //同级上面到selector间的所有元素
</script>
过滤: first() last() eq(index) filter(selector) not(selector)
eq(index): 取jQuery对象数组中的第几个对象,从0开始
filter(selector): 取jQuery对象数组中符合selector的对象,not(selector)相反。
遍历集合
map
遍历数组,返回新的数组
语法:$.map([],function(v,i){})
each
遍历数组
语法:$.each([],function(v,i){})
12.DOM对象jQuery对象互转:
DOM对象 => jQuery对象: $(DOM对象)
如: var ele = document.getElementById('id'); $(ele);
常用操作: $('<a href="#">a标签<a>'); //直接将html标签转成DOM对象
jQuery对象 => DOM对象: jQuery对象[0]
如: $(ele)[0];
13.ready,onload
ready在前,onload在后。
DOM树节点完成:
$(function(){}) === $(document).ready(function(){})
load完成:
window.onload = function(){}
[JS] JavaScript框架(1) jQuery的更多相关文章
- [JS] JavaScript框架(2) D3
D3(Data-Driven Documents)是一个用于网页作图.生成互动图形的JavaScript函数库. 官网:http://d3js.org/ 下载: cdn:<script src= ...
- 16 款最流行的 JavaScript 框架
本文列举了16个当前最流行的JavaScript框架.在这个列表中,既包括jQuery和Mootools,也有Zepo移动JavaScript框架. 里面一定有你正在用的或想尝试用的JavaScrip ...
- js常用框架
JS常用框架:jQuery.Prototype.MooTools 参考:w3cshool jQuery jQuery 是目前最受欢迎的 JavaScript 框架. 它使用 CSS 选择器来访问和操作 ...
- JavaScript 框架(库)
JavaScript 高级程序设计(特别是对浏览器差异的复杂处理),通常很困难也很耗时. 为了应对这些调整,许多的 JavaScript (helper) 库应运而生. 这些 JavaScript 库 ...
- javascript框架(库)
javascript框架(库)高级JavaScript编程,尤其是复杂的浏览器差异处理,通常是困难和耗时的.为了响应这些调整,出现了许多javascript(helper)库.这些JavaScript ...
- 为什么很多国内公司不使用 jQuery 等开源 JS 框架(库),而选择自己开发 JavaScript 框架?
http://www.zhihu.com/question/20099586/answer/13971670 我对公司JAVASCRIPT框架的定位思考:
- JS读书心得:《JavaScript框架设计》——第12章 异步处理
一.何为异步 执行任务的过程可以被分为发起和执行两个部分. 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务. 异步执行模式:任务发起后不等待任务执行完成,而是马上 ...
- js javascript jquery区别和联系
javascript:简称js ,是用于客户端Web开发的一种脚本语言,常用来给HTML网页添加动态功能. jquery:基于JS语言,封装JS的原生方法功能,提供了简便的函数接口,简化了JS的操作. ...
- 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比
本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...
随机推荐
- InteliJ IDEA15 安装jrebel破解文件
使用InteliJ IDEA这个工具感觉比eclipse好用,例如它在没有源码的情况下自动反编译源码等,但是在使用的时,有个很不爽的地方就是不能实时编译,导致java代码更改了一点代码就需要重启项目, ...
- java动态代理汇总
逛知乎,有篇关于fastjson如此快为什么国外还是喜欢用Jackson的问题,高票答案中有一点提到了fastjson有很多写死的地方,也不太适合像spring这种依赖AOP的框架使用,顺便提到了AS ...
- 使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
在线演示1 本地下载 申请达人,去除赞助商链接 如果大家喜欢阅读博客文章的话,可能都会使用RSS阅读器,今天这里我们将使用jQuery来开发一个响应式的RSS信息阅读应用,使用它你可以将你喜欢 ...
- AWVS漏洞测试-01节-AWVS的主要作用
AWVS漏洞工具简单介绍 AWVS全称: Acunetix Web Vulnerability Scanner 中文翻译就是:Acunetix网站攻击扫描器 扫描网站漏洞,通过网络爬虫Crawler的 ...
- [Lua]50行代码的解释器,用来演示lambda calculus
嗯,来写写经过: 在知乎上看见用Belleve牛用javascript写了一个精简的lisp解释器 => 我也想写一个,用lua写,能多简单呢? => 写了一个阉割的scheme解释器,包 ...
- windows7系统下如何安装windows xp系统(无法识别硬盘,删除隐藏分区)
一.硬盘模式的设置 要设置好硬盘模式,否则安装操作系统的时候,根本就不识别硬盘,自然无法安装操作系统了.此步骤主要是解决无法识别硬盘的问题. 首先,进入BIOS当中,一般在advanced当中,有一个 ...
- 连接的世界 - LTE时代产业趋势和战略分析
连接的世界 - LTE时代产业趋势和战略分析 作者:华为有线技术公司李常伟 2014-09-22 信息产业发展解放的核心是这个世界连接的方式.由语音到数据.由通信到情感.由人的连接到物的连接.由“哑” ...
- Asp.net Core中使用NLog,并封装成公共的日志方法
1.安装NLog "NLog.Extensions.Logging": "1.0.0-rtm-alpha4" 2.配置NLog public void Conf ...
- Microsoft.Web.RedisSessionStateProvider 运行异常问题
System.TimeoutException: Timeout performing GET MyKey, inst: 2, mgr: Inactive, queue: 6, qu: 0, qs: ...
- Android 基于Message的进程间通信 Messenger完全解析
一.概述 说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写.如果你对这个过程不熟悉,可以查看Android aidl B ...