13333
jQuery1.4十大新特性解读及代码示例(1)
2010-05-1308:57EthanEthanWoo的博客我要评论(0)字号:T|T
今年1月51CTO曾为您报道过jQuery1.4发布的消息,在这个版本中,jQuery有相当多的改进与功能更新,包括将属性传递给jQurey、多事件绑定以及一些元素处理的功能,我们将通过讲解和示例代码的方式向您详细介绍。
AD:2013云计算架构师峰会精彩课程曝光
今年1月51CTO曾为您报道过jQuery1.4发布的消息,在这个版本中,jQuery有相当多的改进与功能更新,它不仅包含了很多新的特性,还改进了很多功能,更在性能优化方面下了很大功夫,本文将对这些新的特性和增强的部分进行讨论,希望能对你有所帮助。
jQuery1.4版本下载地址:http://code.jquery.com/jquery-1.4.js
下面我们通过讲解和示例代码来详细介绍jQurey1.4版本中你应该知道并使用的十大新特性。
1.传递属性给jQuery
在之前的版本中jQuery就通过"attr”方法支持了添加属性到元素集合中,"attr”方法不仅可以传递属性名和值,也可以传递包含有多个属性的对象集合。在jQurey1.4中,除了可以创建新的对象,现在它更能将属性对象作为参数传递给jQuery函数或对象自身。如你可以创建一个含有多个属性的链接元素。
jQuery('<a></a>',{
id:'gid',
href:'http://www.google.com',
title:'google非和谐版',
rel:'external',
text:'进入<SPANclass=t_tagonclick=tagshow(event)href="tag.php?name=Google"
mce_href="tag.php?name=Google">Google</SPAN>!'
});
你可能会注意到"text”属性并且猜测它是干吗的,因为a标签是没有"text”属性的。呵呵,当你传递某些属性时,jquery1.4同样会检查并使用它自己的方法。因此上面的"text”属性可以让jQuery调用它的".text()”方法并将"进入Google!“作为它的唯一参数。
这里给出一个更好的例子:
jQuery('<div/>',{
id:'foo',
css:{
fontWeight:700,
color:'green'
},
click:function(){
alert('Foo被点击过!');
}
});
"id”属性是作为一个普通属性被添加的。但"css”和"click”属性则对应特定的jQuery方法。上面的代码在1.4之前一种写法如下:
jQuery('<div/>')
.attr('id','foo')
.css({
fontWeight:700,
color:'green'
})
.click(function(){
alert('Foo被点击过!');
});
2.所有的东西都可以"until“了
jQuery1.4新增了三个对DOM操作的方法,他们分别是"nextUntil","prevUntil"和"parentsUntil"。这些方法会按照某个顺序去遍历DOM对象直到满足指定的筛选条件。假设我们有一个水果列表:
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>葡萄</li>
<li>草莓</li>
<li>例子</li>
<li>桃子</li>
</ul>
如果你想选择所有在"Apple”和"Strawberry”之间的元素。代码可以这样写:
jQuery('ulli:contains(苹果)').nextUntil(':contains(梨子)');//得到香蕉,葡萄,草莓
3.绑定多个事件
与通过jquery链绑定多个方法到一起相比,现在你可以通过一次调用来绑定所有这些事件,如:
jQuery('#foo).bind({
click:function(){
//具体代码
},
mouseover:function(){
//具体代码
},
mouseout:function(){
//具体代码
}
})
你也可以通过".one()"方法操作。
4、检查元素是否拥有某对象
通过".has()”方法,jQuery1.4使得检查一个元素(或者集合)是不是有某对象变得相当简单。从程序角度看,它和jQuery的selector过滤器":has()”是一样的。该方法会返回在当前集合中所有包含有至少一个符合条件的元素数组。
jQuery('div').has('ul');
上面方法会返回所有包含有UL元素的DIV元素数组。在这种情况下,你可能会更倾向于简单使用选择器的过滤器(":has()"),但当你需要通过代码过滤一个数组的时候,该方法仍会很有用。
jQuery1.4同样在jQuery命名空间下添加了新的"contains"函数。这是一个低级的函数,它接受两个DOM节点作为参数。它会返回一个布尔值来表示后面一个元素是否在前面一个元素中存在。如:
jQuery.contains(document.documentElement,document.body);
//返回true-<body>在<html>存在
5、去掉元素的包装
".warp()”已经在jQuery中有段日子了,现在跟它对应的".unwrap()”方法也被加进到1.4中了。这个方法刚好跟warp()方法相反。假设有下面的DOM结构:
<div>
<p>Foo</p>
</div>
我们可以用下面的函数去掉段落元素的外层:
jQuery('p').unwrap();
最终的DOM结构如下:
<p>Foo</p>
注意,这个方法处理比较简单,它会移掉任何元素的父节点。