| Sorry to dissapoint you but Umbrella also takes a callback! It just has more sane (ES6-compatible) arguments :) u('a').addClass((el, i) => (i % 2 == 0) ? 'odd' : ''); See example: https://jsfiddle.net/r2f87hzk/ Not only that, Umbrella will handle many more class name separations compared to jQuery. All of these (and more) are valid: u('a').addClass('a,b c', 'd'); // No typo here, four classes added u('a').addClass(['a'], ['b,c', ['d']]); // Again no typo, 4 classes added Of course you normally don't use this, but you might have the class list in an array or a comma-separated string or something else which makes it really convenient and it was basically for free as the method is really reusable. See the documentation: https://umbrellajs.com/documentation#addclass |