包括方法也可以连写:
$(”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已经为我们提供的很方便的方法进行集合的处理。
包括两种形式:
假定我们选中了一个div元素,需要把它移动到p元素后面。
第一种方法是使用.insertAfter(),把div元素移动p元素后面:
$('div').insertAfter('p');
第二种方法是使用.after(),把p元素加到div元素前面:
$('p').after('div'); 表面上看,这两种方法的效果是一样的,唯一的不同似乎只是操作视角的不同。但是实际上,它们有一个重大差别,那就是返回的元素不一样。第一种方法返回div元素,第二种方法返回p元素。你可以根据需要,选择到底使用哪一种方法。
使用这种模式的操作方法,一共有四对:
.insertAfter()和.after():在现存元素的外部,从后面插入元素 .insertBefore()和.before():在现存元素的外部,从前面插入元素 .appendTo()和.append():在现存元素的内部,从后面插入元素 .prependTo()和.prepend():在现存元素的内部,从前面插入元素 10、元素的操作:复制、删除和创建 复制元素使用.clone()。
删除元素使用.remove()和.detach()。两者的区别在于,前者不保留被删除元素的事件,后者保留,有利于重新插入文档时使用。
清空元素内容(但是不删除该元素)使用.empty()。
创建新元素的方法非常简单,只要把新元素直接传入jQuery的构造函数就行了:
$('
Hello
'); $('如果你懂得Javascript语言的继承原理,那么就能理解工具方法的实质。它是定义在jQuery构造函数上的方法,即jQuery.method(),所以可以直接使用。而那些操作元素的方法,是定义在构造函数的prototype对象上的方法,即jQuery.prototype.method(),所以必须生成实例(即选中元素)后使用。如果不理解这种区别,问题也不大,只要把工具方法理解成,是像javascript原生函数那样,可以直接使用的方法就行了。
常用的工具方法有以下几种:
$.trim() 去除字符串两端的空格。 $.each() 遍历一个数组或对象。 $.inArray() 返回一个值在数组中的索引位置。如果该值不在数组中,则返回-1。 $.grep() 返回数组中符合某种标准的元素。 $.extend() 将多个对象,合并到第一个对象。 $.makeArray() 将对象转化为数组。 $.type() 判断对象的类别(函数对象、日期对象、数组对象、正则对象等等)。 $.isArray() 判断某个参数是否为数组。 $.isEmptyObject() 判断某个对象是否为空(不含有任何属性)。 $.isFunction() 判断某个参数是否为函数。 $.isPlainObject() 判断某个参数是否为用{}或new Object建立的对象。 $.support() 判断浏览器是否支持某个特性。 12、事件操作
jQuery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件。
//为三个不同的p元素单击事件分别设定不同的处理
jQuery中几个自定义的事件:
(1)hover(fn1,fn2):一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
//当鼠标放在表格的某行上时将class置为over,离开时置为out。
$(”tr”).hover(function(){ $(this).addClass(”over”); }, function(){ $(this).addClass(”out”); });
(2)ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
//页面加载完毕提示“Load Success”,相当于onload事件。与$(fn)等价
(3)toggle(evenFn,oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。
//每次点击时轮换添加和删除名为selected的class。
$(”p”).toggle(function(){ $(this).addClass(”selected”); },function(){ $(this).removeClass(”selected”); });
(4)trigger(eventtype): 在每一个匹配的元素上触发某类事件。
例如:
$(”p”).trigger(”click”);//触发所有p元素的click事件 (5)bind(eventtype,fn),unbind(eventtype): 事件的绑定与反绑定
从每一个匹配的元素中(添加)删除绑定的事件。例如:
$(”p”).bind(”click”,function(){alert($(this).text());});//为每个p元素添加单击事件 $(”p”).unbind();//删除所有p元素上的所有事件 $(”p”).unbind(”click”)//删除所有p元素上的单击事件 当然,点击事件也可以这么写: $('p').click(function(){ alert('Hello'); }); 使用.bind()可以更灵活地控制事件,比如为多个事件绑定同一个函数:
$('input').bind( 'click change', //同时绑定click和change事件 function() { alert('Hello'); } );
有时,你只想让事件运行一次,这时可以使用.one()方法。
$(p).one(click, function() { alert(Hello); //只运行一次,以后的点击不会运行 });
所有的事件处理函数,都可以接受一个事件对象(event object)作为参数,比如下面例子中的e:
$(p).click(function(e) { alert(e.type); // click }); 这个事件对象有一些很有用的属性和方法:
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 } }); 附件
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()
设置或返回匹配元素的宽度。