2010-10-12 91 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事件。