JQUERY入门指南

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
jQuery,顾名思义,也就是JavaScript和查询(Query),即是辅助JavaScript开发的库。jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。
基础语法是: (selector).action()jQueryselectorHTMLjQueryaction()[html]viewplaincopy (this).hide() - 隐藏当前元素
(p).hide() (“p.test”).hide() - 隐藏所有 class=”test” 的段落
(“#test”).hide() - 隐藏所有 id=”test” 的元素  
1、关于页面元素的引用  
       通过jquery的
()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。
jQuery的基本设计和主要用法,就是”选择某个网页元素,然后对其进行某种操作”。这是它区别于其他函数库的根本特点。使用jQuery的第一步,往往就是将一个选择表达式,放进构造函数jQuery()(简写为 CSS[html]viewplaincopy (document) //选择整个文档对象

  $(‘#myId’) //选择ID为myId的网页元素

  $(‘div.myClass’) // 选择class为myClass的div元素

   (input[name=first])//namefirstinputjQuery (‘a:first’) //选择网页中第一个a元素

  $(‘tr:odd’) //选择表格的奇数行

  $(‘#myForm :input’) // 选择表单中的input元素

  $(‘div:visible’) //选择可见的div元素

  $(‘div:gt(2)’) // 选择所有的div元素,除了前三个

   (div:animated)//div2jQuerydomjquery使jquerydomjquerydomjquerydom ()转换成jquery对象。如: (document.getElementById(msg))jquery使jqueryjqueryjquerydom (”#msg”)[0], (div).eq(1)[0] (”div”).get()[1], (td)[5]dom使dom使Jquery[html]viewplaincopy (”#msg”).html();
(”#msg”)[0].innerHTML;(”#msg”).eq(0)[0].innerHTML;
$(”#msg”).get(0).innerHTML;
3、如何获取jQuery集合的某一项
对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个

元素的内容。有如下两种方法:
[html] view plain copy
(div).eq(2).html();//jquery (”div”).get(2).innerHTML;//调用dom的方法属性

4、同一函数实现set和get
[html] view plain copy
(”#msg”).html();//返回id为msg的元素节点的html内容。(”#msg”).html(”new content”);
//将“new content” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content

(”#msg”).text();//返回id为msg的元素节点的文本内容。(”#msg”).text(”new content”);
//将“new content” 作为普通文本串写入id为msg的元素节点内容中,页面显示new content

(”#msg”).height();//返回id为msg的元素的高度(”#msg”).height(”300″);//将id为msg的元素的高度设为300
(”#msg”).width();//返回id为msg的元素的宽度(”#msg”).width(”300″);//将id为msg的元素的宽度设为300

(input).val();//value (”input”).val(”test”);//将表单输入框的value值设为test

(”#msg”).click();//触发id为msg的元素的单击事件(”#msg”).click(fn);//为id为msg的元素单击事件添加函数
同样blur,focus,select,submit事件都可以有着两种调用方法。
5、改变结果集
如果选中多个元素,jQuery提供过滤器,可以缩小结果集:
[html] view plain copy
(div).has(p);//pdiv (‘div’).not(‘.myClass’); //选择class不等于myClass的div元素
(div).filter(.myClass);//classmyClassdiv (‘div’).first(); //选择第1个div元素
(div).eq(5);//6divjQueryDOM[html]viewplaincopy (‘div’).next(‘p’); //选择div元素后面的第一个p元素
(div).parent();//div (‘div’).closest(‘form’); //选择离div最近的那个form父元素
(div).children();//div (‘div’).siblings(); //选择div的同级元素
6、操作元素的样式
[html] view plain copy
(”#msg”).css(”background”);//返回元素的背景颜色(”#msg”).css(”background”,”#ccc”)//设定元素背景为灰色
(”#msg”).height(300);(”#msg”).width(”200″);//设定宽高
(”#msg”).css({ color: “red”, background: “blue” });//以名值对的形式设定样式(”#msg”).addClass(”select”);//为元素增加名称为select的class
(”#msg”).removeClass(”select”);//删除元素名称为select的class(”#msg”).toggleClass(”select”);//如果存在(不存在)就删除(添加)名称为select的class
7、链式操作
选中网页元素以后,就可以对它进行某种操作。所谓连写,即可以对一个jquery对象连续调用各种不同的方法。
jQuery允许将所有操作连接在一起,以链条的形式写出来,比如:
[html] view plain copy
$(‘div’).find(‘h3’).eq(2).html(‘Hello’);

分解开来,就是下面这样:
[html] view plain copy
(div)//div .find(h3)//h3 .eq(2)//3h3 .html(Hello);//HellojQuery便jQueryjQueryjQuery.end()使退[html]viewplaincopy (‘div’)
 .find(‘h3’)
 .eq(2)
 .html(‘Hello’)
 .end() //退回到选中所有的h3元素的那一步
 .eq(0) //选中第一个h3元素
 .html(‘World’); //将它的内容改为World
包括方法也可以连写:
[html] view plain copy
(”p”).click(function(){alert($(this).html())})  
.mouseover(function(){alert(’mouse over event’)})  
.each(function(i){this.style.color=[‘#f00’,’#0f0’,’#00f’][ i ]});  
8、集合处理操作  
对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理,jquery已经为我们提供的很方便的方法进行集合的处理。  
包括两种形式:  
[html] view plain copy
(”p”).each(function(i){this.style.color=[‘#f00’,’#0f0’,’#00f’][ i ]})
//为索引分别为0,1,2的p元素分别设定不同的字体颜色。

$(”tr”).each(function(i){this.style.backgroundColor=[‘#ccc’,’#fff’][i%2]})
//实现表格的隔行换色效果

(p).click(function()alert($(this).html()))//pclickp9使divp使.insertAfter()divp[html]viewplaincopy (‘div’).insertAfter(‘p’);

第二种方法是使用.after(),把p元素加到div元素前面:
[html] view plain copy
(p).after(div);divp使使[html]viewplaincopy.insertAfter().after().insertBefore().before().appendTo().append().prependTo().prepend()10使.clone()使.remove().detach()使使.empty()jQuery[html]viewplaincopy (‘

Hello

‘);
$(‘
  • new list item
  • ‘);
    $(‘ul’).append(‘
  • list item
  • ‘);
    11、工具方法
    除了对选中的元素进行操作以外,jQuery还提供一些工具方法(utility),不必选中元素,就可以直接使用。
    如果你懂得Javascript语言的继承原理,那么就能理解工具方法的实质。它是定义在jQuery构造函数上的方法,即jQuery.method(),所以可以直接使用。而那些操作元素的方法,是定义在构造函数的prototype对象上的方法,即jQuery.prototype.method(),所以必须生成实例(即选中元素)后使用。如果不理解这种区别,问题也不大,只要把工具方法理解成,是像javascript原生函数那样,可以直接使用的方法就行了。
    常用的工具方法有以下几种:
    [html] view plain copy
    .trim() .each() 遍历一个数组或对象。
    .inArray()1 .grep() 返回数组中符合某种标准的元素。
    .extend() .makeArray() 将对象转化为数组。
    .type() .isArray() 判断某个参数是否为数组。
    .isEmptyObject() .isFunction() 判断某个参数是否为函数。
    .isPlainObject()newObject .support() 判断浏览器是否支持某个特性。
    12、事件操作
    jQuery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件。

    [html] view plain copy
    (”#msg”).click(function(){alert(”good”)})//为元素添加了单击事件(”p”).click(function(i){this.style.color=[‘#f00’,’#0f0’,’#00f’][ i ]})

    //为三个不同的p元素单击事件分别设定不同的处理
    jQuery中几个自定义的事件:
    (1)hover(fn1,fn2):一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
    //当鼠标放在表格的某行上时将class置为over,离开时置为out。
    [html] view plain copy
    (”tr”).hover(function(){(this).addClass(”over”);
    },
    function(){
    $(this).addClass(”out”);
    });
    (2)ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。

    [html] view plain copy
    $(document).ready(function(){alert(”Load Success”)})

    //页面加载完毕提示“Load Success”,相当于onload事件。与$(fn)等价
    (3)toggle(evenFn,oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。

    //每次点击时轮换添加和删除名为selected的class。
    [html] view plain copy
    (”p”).toggle(function(){(this).addClass(”selected”);
    },function(){
    $(this).removeClass(”selected”);
    });

    (4)trigger(eventtype): 在每一个匹配的元素上触发某类事件。
    例如:
    [html] view plain copy
    (p).trigger(click);//pclick5bind(eventtype,fn)unbind(eventtype):[html]viewplaincopy (”p”).bind(”click”,function(){alert((this).text());});//为每个p元素添加单击事件(”p”).unbind();//删除所有p元素上的所有事件
    (p).unbind(click)//p[html]viewplaincopy (‘p’).click(function(){
      alert(‘Hello’);
    });
    使用.bind()可以更灵活地控制事件,比如为多个事件绑定同一个函数:

    [html] view plain copy
    $(‘input’).bind(
        ‘click change’, //同时绑定click和change事件
        function() {
          alert(‘Hello’);
        }
      );

    有时,你只想让事件运行一次,这时可以使用.one()方法。
    [html] view plain copy
    $(“p”).one(“click”, function() {
      alert(“Hello”); //只运行一次,以后的点击不会运行
    });

    所有的事件处理函数,都可以接受一个事件对象(event object)作为参数,比如下面例子中的e:
    [html] view plain copy
    $(“p”).click(function(e) {
      alert(e.type); // “click”
    });
    这个事件对象有一些很有用的属性和方法:
    [html] view plain copy
    event.pageX 事件发生时,鼠标距离网页左上角的水平距离
    event.pageY 事件发生时,鼠标距离网页左上角的垂直距离
    event.type 事件的类型(比如click)
    event.which 按下了哪一个键
    event.data 在事件对象上绑定数据,然后传入事件处理函数
    event.target 事件针对的网页元素
    event.preventDefault() 阻止事件的默认行为(比如点击链接,会自动打开新页面)
    event.stopPropagation() 停止事件向上层元素冒泡

    在事件处理函数中,可以用this关键字,返回事件针对的DOM元素:
    [html] view plain copy
    $(‘a’).click(function() {

      if ((this).attr(‘href’).match(‘evil’)) { //如果确认为有害链接  
        e.preventDefault(); //阻止打开
    (this).addClass(‘evil’); //加上表示有害的class
      }
    });
    附件
    jquery事件
    方法
    描述
    bind()
    向匹配元素附加一个或更多事件处理器
    blur()
    触发、或将函数绑定到指定元素的 blur 事件
    change()
    触发、或将函数绑定到指定元素的 change 事件
    click()
    触发、或将函数绑定到指定元素的 click 事件
    dblclick()
    触发、或将函数绑定到指定元素的 double click 事件
    delegate()
    向匹配元素的当前或未来的子元素附加一个或多个事件处理器
    die()
    移除所有通过 live() 函数添加的事件处理程序。
    error()
    触发、或将函数绑定到指定元素的 error 事件
    event.isDefaultPrevented()
    返回 event 对象上是否调用了 event.preventDefault()。
    event.pageX
    相对于文档左边缘的鼠标位置。
    event.pageY
    相对于文档上边缘的鼠标位置。
    event.preventDefault()
    阻止事件的默认动作。
    event.result
    包含由被指定事件触发的事件处理器返回的最后一个值。
    event.target
    触发事件的 DOM 元素。
    event.timeStamp
    该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。
    event.type
    描述事件的类型。
    event.which
    指示按了哪个键或按钮。
    focus()
    触发、或将函数绑定到指定元素的 focus 事件
    keydown()
    触发、或将函数绑定到指定元素的 key down 事件
    keypress()
    触发、或将函数绑定到指定元素的 key press 事件
    keyup()
    触发、或将函数绑定到指定元素的 key up 事件
    live()
    触发、或将函数绑定到指定元素的 load 事件
    load()
    触发、或将函数绑定到指定元素的 load 事件
    mousedown()
    触发、或将函数绑定到指定元素的 mouse down 事件
    mouseenter()
    触发、或将函数绑定到指定元素的 mouse enter 事件
    mouseleave()
    触发、或将函数绑定到指定元素的 mouse leave 事件
    mousemove()
    触发、或将函数绑定到指定元素的 mouse move 事件
    mouseout()
    触发、或将函数绑定到指定元素的 mouse out 事件
    mouseover()
    触发、或将函数绑定到指定元素的 mouse over 事件
    mouseup()
    触发、或将函数绑定到指定元素的 mouse up 事件
    one()
    向匹配元素添加事件处理器。每个元素只能触发一次该处理器。
    ready()
    文档就绪事件(当 HTML 文档就绪可用时)
    resize()
    触发、或将函数绑定到指定元素的 resize 事件
    scroll()
    触发、或将函数绑定到指定元素的 scroll 事件
    select()
    触发、或将函数绑定到指定元素的 select 事件
    submit()
    触发、或将函数绑定到指定元素的 submit 事件
    toggle()
    绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。
    trigger()
    所有匹配元素的指定事件
    triggerHandler()
    第一个被匹配元素的指定事件
    unbind()
    从匹配元素移除一个被添加的事件处理器
    undelegate()
    从匹配元素移除一个被添加的事件处理器,现在或将来
    unload()
    触发、或将函数绑定到指定元素的 unload 事件

    jQuery 效果函数
    方法
    描述
    animate()
    对被选元素应用“自定义”的动画
    clearQueue()
    对被选元素移除所有排队的函数(仍未运行的)
    delay()
    对被选元素的所有排队函数(仍未运行)设置延迟
    dequeue()
    运行被选元素的下一个排队函数
    fadeIn()
    淡入被选元素至完全不透明
    fadeOut()
    淡出被选元素至完全不透明
    fadeTo()
    把被选元素减弱至给定的不透明度
    hide()
    隐藏被选的元素
    queue()
    显示被选元素的排队函数
    show()
    显示被选的元素
    slideDown()
    通过调整高度来滑动显示被选元素
    slideToggle()
    对被选元素进行滑动隐藏和滑动显示的切换
    slideUp()
    通过调整高度来滑动隐藏被选元素
    stop()
    停止在被选元素上运行动画
    toggle()
    对被选元素进行隐藏和显示的切换

    @ jQuery文档操作方法
    这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
    方法
    描述
    addClass()
    向匹配的元素添加指定的类名。
    after()
    在匹配的元素之后插入内容。
    append()
    向匹配的元素内部追加内容。
    appendTo()
    向匹配的元素内部追加内容。
    attr()
    设置或返回匹配元素的属性和值。
    before()
    在每个匹配的元素之前插入内容。
    clone()
    创建匹配元素集合的副本。
    detach()
    从 DOM 中移除匹配元素集合。
    empty()
    删除匹配的元素集合中所有的子节点。
    hasClass()
    检查匹配的元素是否拥有指定的类。
    html()
    设置或返回匹配的元素集合中的 HTML 内容。
    insertAfter()
    把匹配的元素插入到另一个指定的元素集合的后面。
    insertBefore()
    把匹配的元素插入到另一个指定的元素集合的前面。
    prepend()
    向每个匹配的元素内部前置内容。
    prependTo()
    向每个匹配的元素内部前置内容。
    remove()
    移除所有匹配的元素。
    removeAttr()
    从所有匹配的元素中移除指定的属性。
    removeClass()
    从所有匹配的元素中删除全部或者指定的类。
    replaceAll()
    用匹配的元素替换所有匹配到的元素。
    replaceWith()
    用新内容替换匹配的元素。
    text()
    设置或返回匹配元素的内容。
    toggleClass()
    从匹配的元素中添加或删除一个类。
    unwrap()
    移除并替换指定元素的父元素。
    val()
    设置或返回匹配元素的值。
    wrap()
    把匹配的元素用指定的内容或元素包裹起来。
    wrapAll()
    把所有匹配的元素用指定的内容或元素包裹起来。
    wrapinner()
    将每一个匹配的元素的子内容用指定的内容或元素包裹起来。
    @ jQuery 属性操作方法
    下面列出的这些方法获得或设置元素的 DOM 属性。
    这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
    方法
    描述
    addClass()
    向匹配的元素添加指定的类名。
    attr()
    设置或返回匹配元素的属性和值。
    hasClass()
    检查匹配的元素是否拥有指定的类。
    html()
    设置或返回匹配的元素集合中的 HTML 内容。
    removeAttr()
    从所有匹配的元素中移除指定的属性。
    removeClass()
    从所有匹配的元素中删除全部或者指定的类。
    toggleClass()
    从匹配的元素中添加或删除一个类。
    val()
    设置或返回匹配元素的值。

    @ jQuery CSS 操作函数
    下面列出的这些方法设置或返回元素的 CSS 相关属性。
    CSS 属性
    描述
    css()
    设置或返回匹配元素的样式属性。
    height()
    设置或返回匹配元素的高度。
    offset()
    返回第一个匹配元素相对于文档的位置。
    offsetParent()
    返回最近的定位祖先元素。
    position()
    返回第一个匹配元素相对于父元素的位置。
    scrollLeft()
    设置或返回匹配元素相对滚动条顶部的偏移。
    scrollTop()
    设置或返回匹配元素相对滚动条左侧的偏移。
    width()
    设置或返回匹配元素的宽度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值