jQuery 1.4 15个你应该知道的新特性(译)

2020-05-22 21:58:33易采站长站整理
:has()“), 但当你需要通过代码过滤一个数组的时候,该方法仍会很有用。


1.4同样在jQuery命名空间下添加了新的”contains“函数。这是一个低级的函数,它接受两个DOM节点作为参数。它会返回一个布尔值来表示后面一个元素是否在前面一个元素中存在。如:


jQuery.contains(document.documentElement, document.body);
// 返回true – <body>在<html>存在

 


更多关于: .has(…), jQuery.contains(…)


9. 去掉元素的包装

“.warp()”已经在jQuery中有段日子了,现在跟它对应的”.unwrap()”方法也被加进到1.4中了。这个方法刚好跟warp()方法相反。假设有下面的DOM结构:


<div>
<p>Foo</p>
</div>

我们可以用下面的函数去掉段落元素的外层:


jQuery(‘p’).unwrap();

 


最终的DOM结构如下:

view source

print?





1<p>Foo</p>

注意,这个方法处理比较简单,它会移掉任何元素的父节点。


更多关于 .unwrap(…)


10. detach() vs remove()

新的”.detach()”方法允许你从DOM中移掉元素,这跟”.remove()”很像。但与”.remove()”有本质不同的是”detach()”不会将jQuery赋给该元素的数据也给注销掉。这包含通过”.data()”和其他任意的通过jQuery的事件系统添加的事件等数据。


如果你想从DOM中移除某个元素,但你又可能需要在后面的某个时候把该元素重新添加到DOM中的时候这个函数将会很有用,这时候该元素的事件和其他的数据都会被保留下来。


var foo = jQuery(‘#foo’);
// 绑定一个重要的事件
foo.click(function(){
alert(‘Foo!’);
});
foo.detach(); // 从 DOM中移除事件
// … 其他操作
foo.appendTo(‘body’); // 将元素重新加入到 DOM
foo.click(); // 弹出 “Foo!”

更多 .detach(…)


11. index(…) 加强

jQuery 1.4中我们有两种使用”.index()”方法的方式。首先,你可以仅仅将一个元素自身作为参数,这样你可以得到该元素在当前集合中所处的索引位置值。


如果不设置参数的话,现在会返回该元素的兄弟节点。因此,假设有下面的DOM结构:


<ul>
<li>苹果</li>
<li>香蕉</li>