Mootools可以淡化与选择器匹配的所有节点,如下所示:
$$('#div img').fade(0.3);
我需要一种跳过特定节点的方法。在jQuery-world中,我会使用not(),它会是这样的:
$$('#div img').not( oneElement ).fade(0.3);
但我找不到任何方式在mootools中表现出类似的行为。任何人都知道吗?
答案 0 :(得分:6)
$$('#div img').erase(oneElement).fade(0.3);
答案 1 :(得分:5)
在html元素集合上使用.filter将具有相同的效果,前提是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>
正如FunFactor在irc上指出的那样,你只能使用选择器来获得你想要的东西:
$$('div.something:not(#someId)')
可以使用,但如果您只是在this
事件上使用某个对象,例如onClick
,则无效。