2010-10-12 56 views
3

Mootools的可以淡化选择这样的匹配所有节点:mootools是否提供淡入淡出所有元素的方法?

$$('#div img').fade(0.3); 

我需要一种方式来跳过一个特定节点。在jQuery的世界里,我会使用一个没有(),这将是这样的:

$$('#div img').not(oneElement).fade(0.3); 

但我无法找到任何方式表现出mootools的类似行为。任何人都知道吗?使用

回答

5

.filter的HTML元素集合将有同样的效果,提供oneElement是一个正确的对象:

$$("img").filter(function(el) { 
    return el !== oneElement; 
}).fade(.3); 

证明MooTools的如何通用的是,这里是你如何能模仿你已经知道语法:

Array.implement({ 
    not: function(skipEl) { 
     return skipEl ? this.filter(function(el) { 
      return el !== skipEl; 
     }) : this; 
    } 
}); 

var divs = document.getElements("div"); 
var redDiv = document.getElement("div.red"); 

divs.not(redDiv).fade(.2); 

在这里的行动看到这一点:http://www.jsfiddle.net/dimitar/Z9MNe/

标记:

<div ></div> 
<div ></div> 
<div ></div> 
<div class="red" ></div> 
<div ></div> 

如IRC上所指出的FunFactor,您可以使用选择只拿到你想要什么呢:

$$('div.something:not(#someId)')会的工作,但如果你只是一个对象的工作不是如thisonClick事件。