• 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()方法

  • 相关阅读:
    了解下Mysql的间隙锁及产生的原因
    Mysql在InnoDB引擎下索引失效行级锁变表锁案例
    Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解
    Mysql优化_ORDER BY和GROUP BY 的优化讲解(单路排序和双路排序)
    Mysql优化原则_小表驱动大表IN和EXISTS的合理利用
    Mysql性能调优工具Explain结合语句讲解
    隐藏Apche、Nginx、PHP的版本号提高网站安全性
    Thinkphp在Lnmp环境下部署项目先后报错问题解决:_STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/...Access denied.
    html中返回上一页
    ecshop网站建设手机版wap版出现lib.debug.php on line 303
  • 原文地址:https://www.cnblogs.com/huangf714/p/5915057.html
Copyright © 2020-2023  润新知