Jquery 内容简介
内容简介
内容简介
• 什么是Jquery
• 万能的选择器
• 管理jQuery包装集
• 使用jQuery操作元素的属性与样式
• 事件与事件对象
• jQuery中的Ajax
• jQuery动画-让页面动起来!
• 插播:jQuery实施方案
• jQuery工具函数
• jQueryUI常用功能实战
• 实战表单验证与自动完成提示插件
Jquery概述
• Jquery是一套Javascript脚本库
– JQuery == JavascriptLibrary
– Jquery != JavascriptFrameWork
• 提供了强大的功能函数
• 解决浏览器兼容性问题
• 实现丰富的UI
• …………
Jquery的选择器
• 一个简单的Jquery的功能实现
• var $=function(id){
return document.getElementById(id);}
Jquery的选择器
• 在Dom编程中只能使用有限的函数根据id或
者TagName获取Dom对象.
• jQuery提供了异常强大的选择器用来帮助
我们获取页面上的对象, 并且将对象 以
jQuery 包装集 的形式返回.
• 只有Jquery对象才能调用Jquery方法
• 通过索引器返回的不再是jQuery 包装集, 而
是一个Dom 对象
• “$”符号在jQuery中代表对jQuery对象的引用,
“jQuery”是核心对象 Returns: jQuery包装集
• $( html, ownerDocument )
– 根据HTML原始字符串动态创建Dom元素.
• $( elements )
– 将一个或多个Dom对象封装jQuery函数功能(即
封装为jQuery包装集)
• $( callback )
– $(document).ready()的简写方式
jQuery( selector, context )
• Selector 选择器 "选择"和"过滤".
• 选择 不会有默认的范围
• 过滤
– 指定条件从前面匹配的内容中筛选
– 可以单独使用, 表示从全部 ("*“) 中筛选
$(":[title]")等同于:$("*:[title]")
选择器示例
• $(“#divId") 选择ID为divId的元素
$(".bgRed") 选择所用CSS类为bgRed的元素
• $("a") 选择所有<a>元素
• $("*") 选择页面所有元素
• $(“#divId, a, .bgRed”) 依次选择对应元素
alert($($("#dv,.dv")[1]).text());
• $(".bgRed div")
– 选择CSS类为bgRed的元素中的所有<div>元素.
• $(".myList>li")
– 选择CSS类为myList元素中的直接子节点<li>对象.
• $("#hibiscus+img")
– 选在id为hibiscus元素后面的img对象.(同级节点)
• $("#someDiv~[title]")
– 选择id为someDiv的对象后面所有带有title属性
的元素
• $("tr:first") 查找表格的第一行
• $("tr:last“) 查找表格的最后一行
• $("input:not(:checked)")
• 查找所有未选中的 input
• $(“tr:even”) 查找表格的奇数行
• $(“tr:odd”) 查找表格的偶数行
• $(“tr:eq(1)”) 查找第二行 即索引值是1
• $("tr:gt(3)") 查找大于给定索引值的元素
• $(“tr:lt(3)”) 查找小于给定索引值的元素
• $(":header").css("background", "#EEE");
– 给页面内所有标题加上背景色
• $("#run").click(function(){
$("div:not(:animated)").animate({ left: "+=20" }, 1000);
});
– 只有对不在执行动画效果的元素执行一个动画特效
• $(“div:contains('John')")
– 查找所有包含 "John" 的 div 元素
• $("td:empty")
– 查找所有不包含子元素或者文本的空元素
• $("div:has(p)").addClass("test");
– 给所有包含 p 元素的 div 元素添加一个 text 类
• $("td:parent")
– 查找所有含有子元素或者文本的 td 元素
• $("tr:hidden")
– 查找所有不可见的 tr 元素
• $("tr:visible")
– 查找所有可见的 tr 元素
• $("div[id]")
– 查找含有 id 属性的 div 元素
• $("input[name='newsletter']").attr("checked", true);
– 查找 name 属性是 newsletter 的 input 元素
• $("input[name!='newsletter']").attr("checked", true);
– 查找 name 属性不是 newsletter 的 input 元素
• $("input[name^='news']")
– 查找 name 属性以news开头的 input 元素
• $("input[name$='letter']")
– 查找 name 属性以letter结尾的 input 元素
• $("input[name*='man']")
– 查找所有 name 包含 'man' 的 input 元素
• $("input[id][name$='man']")
– 找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的元素
• $("ul li:nth-child(2)")
– 在每个 ul 查找第 2 个li
• $("ul li:first-child")
– 在每个 ul 中查找第一个 li
• $("ul li:last-child")
– 在每个 ul 中查找最后一个 li
• $("ul li:only-child")
– 在 ul 中查找是唯一子元素的 li
• $(":input") 查找所有的input元素
• $(":text")
• Radio
• Checkbox
• Submit
• Image
• Reset
• Button
• File 查找所有文件域
• $("input:enabled")
– 查找所有可用的input元素
• $("input:disabled")
• $("input:checked")
• $("select option:selected")
– 查找所有选中的选项元素
Jquery 中的方法: 改变结果集:
• $('div').has('p');
– 选择包含p元素的div元素
• $('div').not('.myClass');
– 选择class不等于myClass的div元素
• $('div').filter('.myClass');
– 选择class等于myClass的div元素
• $('div').first();
– 选择第1个div元素
• $('div').eq(5);
– 选择第6个div元素
Jquery 中的方法:DOM树上的移动
• $('div').next('p');
– 选择div元素后面的第一个p元素
• $('div').parent();
– 选择div元素的父元素
• $('div').closest('form');
– 选择离div最近的那个form父元素
• $('div').children();
– 选择div的所有子元素
• $('div').siblings();
– 选择div的同级元素
• .end()方法,使得结果集可以后退一步
$('div')
.find('h3')
.eq(2)
.html('Hello')
.end() // 退回到选中所有的h3 元素
.eq(0) //选中第一个h3元素
.html('World'); //将它的内容改为World
元素的操作:取值和赋值
• 同一个函数,来完成取值和赋值
• 到底是取值还是赋值,由函数的参数决定。
• $('h1').html();
– html()没有参数,表示取出h1的值
• $('h1').html('Hello');
– html()有参数Hello,表示对h1进行赋值
常见的取值和赋值函数
• .html() 取出或设置html内容
• .text() 取出或设置text内容
• .attr() 取出或设置某个属性的值
• .width() 取出或设置某个元素的宽度
• .height() 取出或设置某个元素的高度
• .val() 取出某个表单元素的值
• 如果结果集包含多个元素,那么赋值的时候,
将对其中所有的元素赋值,取值的时候,则
是只取出第一个元素的值(.text()例外,它取
出所有元素的text内容)
元素的操作:移动
• 第一种方法是使用.insertAfter()
• 把div元素移动p元素后面:
• $('div').insertAfter('p');
• 第二种方法是使用.after()
• 把p元素加到div元素前面:
• $('p').after('div');
• 第一种方法返回div元素,第二种方法返回p
元素
• .insertAfter()和.after():
– 在现存元素的外部,从后面插入元素
• .insertBefore()和.before():
– 在现存元素的外部,从前面插入元素
• .appendTo()和.append():
– 在现存元素的内部,从后面插入元素
• .prependTo()和.prepend():
– 在现存元素的内部,从前面插入元素
元素的操作:复制、删除和创建
• 复制元素使用.clone()
• 删除元素使用.remove()和.detach()
– 前者不保留被删除元素的事件,后者保留,有
利于重新插入文档时使用。
• 清空元素内容(但是不删除该元素)使
用.empty()。
• 创建新元素的方法非常简单,只要把新元
素直接传入jQuery的构造函数
– $('<p>Hello</p>');
工具方法
• $.trim() 去除字符串两端的空格。
• $.each() 遍历一个数组或对象。
• $.inArray()
– 返回一个值在数组中的索引位置。如果该值不在数组中,则返回-
1。
• $.grep() 返回数组中符合某种标准的元素。
• $.extend() 将多个对象,合并到第一个对象。
• $.makeArray() 将对象转化为数组。
• $.type()
– 判断对象的类别(函数对象、日期对象、数组对象、正则对象等
等)。
• $.isArray() 判断某个参数是否为数组。
• $.isEmptyObject() 判断某个对象是否为空(不含有任何属性)。
• $.isFunction() 判断某个参数是否为函数。
• $.isPlainObject() 判断某个参数是否为用"{}"或"new Object"建立的对象。
• $.support() 判断浏览器是否支持某个特性。
事件操作
• 事件直接绑定在网页元素之上。
$('p').click(function(){
alert('Hello');
});
jQuery主要支持以下事件
• .blur() 表单元素失去焦点。
• .change() 表单元素的值发生变化
• .click() 鼠标单击
• .dblclick() 鼠标双击
• .focus() 表单元素获得焦点
• .focusin() 子元素获得焦点
• .focusout() 子元素失去焦点
• .hover()
– 同时为mouseenter和mouseleave事件指定处理函数
• .keydown() 按下键盘(长时间按键,只返回一个事件)
• .keypress() 按下键盘(长时间按键,将返回多个事件)
• .keyup() 松开键盘
• .load() 元素加载完毕
• .mousedown() 按下鼠标
• .mouseenter() 鼠标进入(进入子元素不触发)
• .mouseleave() 鼠标离开(离开子元素不触发)
• .mousemove() 鼠标在元素内部移动
• .mouseout() 鼠标离开(离开子元素也触发)
• .mouseover() 鼠标进入(进入子元素也触发)
• .mouseup() 松开鼠标
• .ready() DOM加载完成
• .resize() 浏览器窗口的大小发生改变
• .scroll() 滚动条的位置发生变化
• .select() 用户选中文本框中的内容
• .submit() 用户递交表单
• .toggle() 根据鼠标点击的次数,依次运行多个函数
• .unload() 用户离开页面
• 这些事件在jQuery内部,都是.bind()的便捷
方式。
• 使用.bind()可以更灵活地控制事件
• //同时绑定click和change事件
$(‘input’).bind(‘click change’, function() {
alert(‘Hello’);});
• //只运行一次,以后的点击不会运行
$("p").one("click", function() {
alert(“Hello”); });
• //.unbind()用来解除事件绑定。
$('p').unbind('click');
• 所有的事件处理函数,都可以接受一个事
件对象(event object)作为参数,比如下
面例子中的e:
$("p").click(function(e) {
alert(e.type);});
• event.pageX 事件发生时,鼠标距离网页左上角的水平距离
• event.pageY 事件发生时,鼠标距离网页左上角的垂直距离
• event.type 事件的类型(比如click)
• event.which 按下了哪一个键
• event.data 在事件对象上绑定数据,然后传入事件处理函数
• event.target 事件针对的网页元素
• event.preventDefault() 阻止事件的默认行为(比如点击链
接,会自动打开新页面)
• event.stopPropagation() 停止事件向上层元素冒泡
• 在事件处理函数中,可以用this关键字,返
回事件针对的DOM元素:
$(‘a’).click(function() {
if ($(this).attr('href').match('evil')) {
//如果确认为有害链接
e.preventDefault(); //阻止打开
$(this).addClass('evil'); //加上表示有害的class}});
• 有两种方法,可以自动触发一个事件。一
种是直接使用事件函数,另一种是使
用.trigger()或.triggerHandler()。
$('a').click();
$('a').trigger('click');
特殊效果
• .fadeIn() 淡入
• .fadeOut() 淡出
• .fadeTo() 调整透明度
• .hide() 隐藏元素
• .show() 显示元素
• .slideDown() 向下展开
• .slideUp() 向上卷起
• .slideToggle() 依次展开或卷起某个元素
• .toggle() 依次展示或隐藏某个元素
• 除了.show()和.hide(),所有其他特效的默认
执行时间都是400ms(毫秒)
– $('h1').fadeIn(300); // 300毫秒内淡入
– $('h1').fadeOut('slow'); // 缓慢地淡出
• 在特效结束后,可以指定执行某个函数。
$('p').fadeOut(300, function() { $(this).remove(); });
• 更复杂的特效,可以用.animate()自定义
$(‘div’).animate({left : “+=50”, opacity : 0.25}, 300, function(){
alert(‘done!’); });
• .stop()和.delay()用来停止或延缓特效的执行。
• $.fx.off如果设置为true,则关闭所有网页特
效。
一样的选择器不一样的性能
• 最快的选择器:id 选择器和元素标签选择器
– $('#id')
jQuery会自动调用浏览器的原生方法(getElementById()),
所以它们的执行速度快。
• 较慢的选择器:class 选择器
– $('.className')
• FF Safari Chrome Opera getElementByClassName()
• IE中会相当慢
• 最慢的选择器:伪类选择器和属性选择器
– $(':hidden') $('[attribute=value]')
• 没有原生方法
• 不要过度使用jQuery
– jQuery速度再快,也无法与原生的javascript方
法相比。所以有原生方法可以使用的场合,尽
量避免使用jQuery。
• $('a').click(function(){
alert($(this).attr('id'));
});
$('a').click(function(){
alert(this.id);
});
this.id的速度比$(this).attr('id')快了20多倍
• 做好缓存 快2-3 倍
– var cached = jQuery('#top');
cached.find('p.classA');
• 使用链式写法 快了25%
– $('div').find('h3').eq(2).html('Hello');
• 少改动DOM 结构 快了60%
– 如果你要对一个DOM元素进行大量处理,应该先用.detach()方法
Jquery 内容简介的更多相关文章
- Hashslider – 带有 Hash 标签功能的 jQuery 内容滑块
Hashslider 实现了常见的 jQuery 滑块的功能,特别之处在于给 URL 加上了标签,因此你能够连接到滑块的某块内容.滑块的内容也可以从外部的 HTML 文件获取. 您可能感兴趣的相关文章 ...
- Flexslider - 响应式的 jQuery 内容滚动插件
FlexSlider 是一款轻量的响应式 jQuery 内容滚动插件,能够帮助你在项目轻松的创建漂亮的内容滚动效果.这款插件曾经连续多年入选 WDL 的年度最佳 jQuery 插件,值得大家在网站开发 ...
- metinfo首页内容简介
http://www.hlbaozhuangji.cn/manage/content/other_info.php?anyid=31&lang=cn 首页内容简介: select * from ...
- 20 个非常棒的jQuery内容滑动插件
Wow Slider WOW Slider是一款小巧易用的网页滑块设计.该软件内置大量的模版和工具,让你轻松设计出完美的视觉效果.他还可以帮助用户在短时间内创造出梦幻般的滑块,而无需编码和图像编辑, ...
- jQuery内容过滤器
jQuery内容过滤器 <h1>this is h1</h1> <div id="p1"> <h2>this is h2</h ...
- 帝国cms列表页内容简介字段smalltext去除里面html格式代码 设置方法
帝国cms列表页内容简介字段smalltext去除里面html格式代码帝国cms列表页调用内容简介出现html代码怎么办 近来在用帝国cms的时候,发现一个问题,在列表页调用产品简介的时候出现了这种h ...
- jQuery EasyUI 简介
简介 jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件. 特点: ①easyui 是一个基于 jQuery 的框架,集成了各种用户界面插件. ②easyui 提供建 ...
- jQuery的简单用法(jQuery的简介,选择器,属性和css,文档处理)
一.jQuery简介 1.1. JS库 JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互客户端页面, 并且兼容各大浏览器. 1.2. 当前流行的 JavaSc ...
- JQuery 内容过滤选择器
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
随机推荐
- [Reprint]c++ 析构函数的调用
析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢.写段代码总结下 #include <iostream> using namespace std; class Bo ...
- csuoj 1390: Planting Trees
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1390 1390: Planting Trees Time Limit: 1 Sec Memory ...
- HDFS简介
Hadoop是当今最为流行的大数据分析和处理工具. 其最先的思想来源于Google的三篇论文: GFS(Google File System):是 ...
- ls -l 列表信息详解
我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息.这些信息到底是什么意思呢? ...
- /Users/alamps/AndroidStudioProjects/Demo11ListView
package com.example.demo11listview; import android.os.Bundle; import android.app.Activity; import an ...
- demo07
city_data.xml <?xml version="1.0" encoding="utf-8"?> <resources> < ...
- oracle的函数
1:nvl函数 nvl函数将一个null值转换为一个实际的值,数据类型可以是日期,数字,字符,数据类型必须匹配,vl能够转换任何数据类型,但是转换的数据类型返回值必须是nvl(expr1,expr2) ...
- Immediate assertion
Imemdiate assertion可以放在任何procedural statement中, assertion被执行判断,当这个procedural code被执行的时候.其他时间是不会被执行的. ...
- 使用sublime text3的一些事
因为在第一次接触网页设计的时候,使用的是Dreamweaver,它的设计是一款所见即所得的网页编辑器,而且当你写好元素之后的“:”时,就会有代码提示功能,对一些初学者来说,是一个不错的选择.但是慢慢地 ...
- TVideoGrabber的使用(一)捕捉摄像头
使用TVideoGrabber捕捉摄像头,相当容易,只需几句代码即可解决问题,首先我们新建一个工程,然后从控件面板上拉取一个 TVideoGrabber控件到窗体中,然后再在窗体上放置四个Button ...