jQuery 简单总结
来源:互联网 发布:2017年春运数据 编辑:程序博客网 时间:2024/06/16 19:00
查找
用find()
查找
如果要从当前节点开始向上查找,使用parent()
方法
对于位于同一层级的节点,可以通过next()
和prev()
方法
过滤
filter()
方法可以过滤掉不符合选择器条件的节点
map()
方法把一个jQuery对象包含的若干DOM节点转化为其他对象
var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskellvar arr = langs.map(function () { return this.innerHTML;}).get(); // 用get()拿到包含string的Array:['JavaScript', 'Python', 'Swift', 'Scheme', 'Haskell']
text() 和 html
jQuery对象的text()
和html()
方法分别获取节点的文本和原始HTML文本,
css()
$('#test-css li.dy>span').css('background-color', '#ffd351').css('color', 'red');
var div = $('#test-div');div.css('color'); // '#000033', 获取CSS属性div.css('color', '#336699'); // 设置CSS属性div.css('color', ''); // 清除CSS属性
注意,jQuery对象的所有方法都返回一个jQuery对象(可能是新的也可能是自身),这样我们可以进行链式调用,非常方便。
显示和隐藏DOM
考虑到显示和隐藏DOM元素使用非常普遍,jQuery直接提供show()
和hide()
方法获取DOM信息
// 浏览器可视窗口大小:$(window).width(); // 800$(window).height(); // 600// HTML文档大小:$(document).width(); // 800$(document).height(); // 3500// 某个div的大小:var div = $('#test-div');div.width(); // 600div.height(); // 300div.width(400); // 设置CSS属性 width: 400px,是否生效要看CSS是否有效div.height('200px'); // 设置CSS属性 height: 200px,是否生效要看CSS是否有效
attr()
和removeAttr()
方法用于操作DOM节点的属性:
// <div id="test-div" name="Test" start="1">...</div>var div = $('#test-div');div.attr('data'); // undefined, 属性不存在div.attr('name'); // 'Test'div.attr('name', 'Hello'); // div的name属性变为'Hello'div.removeAttr('name'); // 删除name属性div.attr('name'); // undefined
attr()
和prop()
对于属性checked
处理有所不同:
var radio = $('#test-radio');radio.attr('checked'); // 'checked'radio.prop('checked'); // true
prop()
返回值更合理一些。不过,用is()
方法判断更好:
var radio = $('#test-radio');radio.is(':checked'); // true
类似的属性还有selected
,处理时最好用is(':selected')
。对于表单元素,jQuery对象统一提供val()
方法获取和设置对应的value
属性:
添加DOM
要添加新的DOM节点,除了通过jQuery的html()
这种暴力方法外,还可以用append()
方法ul.append('<li><span>Haskell</span></li>');
append()
把DOM添加到最后,prepend()
则把DOM添加到最前。另外注意,如果要添加的DOM节点已经存在于HTML文档中,它会首先从文档移除,然后再添加,也就是说,用append()
,你可以移动一个DOM节点。
也就是说,同级节点可以用after()
或者before()
方法。
删除节点
要删除DOM节点,拿到jQuery对象后直接调用remove()
方法就可以了
动画
show / hide
直接以无参数形式调用show()
和hide()
,会显示和隐藏DOM元素。但是,只要传递一个时间参数进去,就变成了动画
toggle()
方法则根据当前状态决定是show()
还是hide()
。slideUp / slideDown
slideUp()
和slideDown()
则是在垂直方向逐渐展开或收缩的 slideToggle()
则根据元素是否可见来决定下一步动作:
fadeIn / fadeOut
fadeIn()
和fadeOut()
的动画效果是淡入淡出,也就是通过不断设置DOM元素的opacity
属性来实现,而fadeToggle()
则根据元素是否可见来决定下一步动作:自定义动画
animate()
,它可以实现任意动画效果,我们需要传入的参数就是DOM元素最终的CSS状态和时间,jQuery在时间段内不断调整CSS直到达到我们设定的值:animate()
还可以再传入一个函数,当动画结束时,该函数将被调用
串行动画
jQuery的动画效果还可以串行执行,通过delay()
方法还可以实现暂停,这样,我们可以实现更复杂的动画效果,而代码却相当简单// 动画效果:slideDown - 暂停 - 放大 - 暂停 - 缩小div.slideDown(2000) .delay(1000) .animate({ width: '256px', height: '256px' }, 2000) .delay(1000) .animate({ width: '128px', height: '128px' }, 2000);}
此外,jQuery也没有实现对background-color
的动画效果,用animate()
设置background-color
也没有效果。这种情况下可以使用CSS3的transition
实现动画效果。AJAX
jQuery在全局对象jQuery
(也就是$
)绑定了ajax()
函数,可以处理AJAX请求。ajax(url, settings)
函数需要接收一个URL和一个可选的settings
对象,常用的选项如下:
async:是否异步执行AJAX请求,默认为
true
,千万不要指定为false
;method:发送的Method,缺省为
'GET'
,可指定为'POST'
、'PUT'
等;contentType:发送POST请求的格式,默认值为
'application/x-www-form-urlencoded; charset=UTF-8'
,也可以指定为text/plain
、application/json
;data:发送的数据,可以是字符串、数组或object。如果是GET请求,data将被转换成query附加到URL上,如果是POST请求,根据contentType把data序列化成合适的格式;
headers:发送的额外的HTTP头,必须是一个object;
dataType:接收的数据格式,可以指定为
'html'
、'xml'
、'json'
、'text'
等,缺省情况下根据响应的Content-Type
猜测。
var jqxhr = $.ajax('/api/categories', { dataType: 'json'});// 请求已经发送了
jQuery的jqXHR对象类似一个Promise对象,我们可以用链式写法来处理各种回调:'use strict';function ajaxLog(s) { var txt = $('#test-response-text'); txt.val(txt.val() + '\n' + s);}$('#test-response-text').val('');
var jqxhr = $.ajax('/api/categories', {
dataType: 'json'
}).done(function (data) {
ajaxLog('成功, 收到的数据: ' + JSON.stringify(data));
}).fail(function (xhr, status) {
ajaxLog('失败: ' + xhr.status + ', 原因: ' + status);
}).always(function () {
ajaxLog('请求完成: 无论成功或失败都会调用');
});
get
对常用的AJAX操作,jQuery提供了一些辅助方法。由于GET请求最常见,所以jQuery提供了get()
方法,可以这么写:
var jqxhr = $.get('/path/to/resource', { name: 'Bob Lee', check: 1});
第二个参数如果是object,jQuery自动把它变成query string然后加到URL后面,实际的URL是:
/path/to/resource?name=Bob%20Lee&check=1
这样我们就不用关心如何用URL编码并构造一个query string了。
post
post()
和get()
类似,但是传入的第二个参数默认被序列化为application/x-www-form-urlencoded
:
var jqxhr = $.post('/path/to/resource', { name: 'Bob Lee', check: 1});
实际构造的数据name=Bob%20Lee&check=1
作为POST的body被发送。
getJSON
由于JSON用得越来越普遍,所以jQuery也提供了getJSON()
方法来快速通过GET获取一个JSON对象:
var jqxhr = $.getJSON('/path/to/resource', { name: 'Bob Lee', check: 1}).done(function (data) { // data已经被解析为JSON对象了});
underscore
map/filter
Array
的map()
与filter()
类似,但是underscore的map()
和filter()
可以作用于Object。当作用于Object时,传入的函数为function (value, key)
,第一个参数接收value,第二个参数接收key:_.every()
函数返回true
,当集合的至少一个元素满足条件时,_.some()
函数返回true
:'use strict';// 所有元素都大于0?_.every([1, 4, 7, -3, -9], (x) => x > 0); // false// 至少一个元素大于0?_.some([1, 4, 7, -3, -9], (x) => x > 0); // true
- jquery简单总结
- jquery 简单应用总结
- jQuery 简单归纳总结
- jQuery 简单总结
- jQuery 的选择器 简单总结
- jquery mobile简单开发总结
- jQuery的一些简单语法总结
- jQuery中DOM操作方法的简单总结
- jquery杂记,开发中遇到的问题,简单总结下
- jquery的val()的简单使用(个人总结)
- 时间控件插件[js/jquery]总结和简单实践-前端
- 前端 jquery-ajax 的简单案例分析和总结
- JQuery常见的语法以及简单例子总结
- 前端 jquery-ajax 的简单案例分析和总结
- 前端 jquery-ajax 的简单案例分析和总结
- 简单jQuery
- Jquery总结
- JQuery总结
- C++一本通题库1004字符三角形
- POJ 3411 Paid Roads(dfs技巧)
- 一个97年的IT人创业历程中的总结和感悟
- 扩容swap
- 用面向对象的方法增强测试驱动开发
- jQuery 简单总结
- 浅谈h5的新属性(data-*属性)
- Codeforces Round #409 Div2题解
- 10、linux 统计当前文件夹下的文件、目录个数
- 安卓开发-基本UI的设计使用
- Spark完全分布式搭建过程
- 同一进程的线程共享的资源和独有的资源
- 左旋转字符串
- WPS 规划求解