UNPKG

slickgrid

Version:

A lightning fast JavaScript grid/spreadsheet

54 lines (42 loc) 1.65 kB
function isArrayLike( obj ) { // Support: iOS 8.2 (not reproducible in simulator) // `in` check used to prevent JIT error (gh-2145) // hasOwn isn't used here due to false negatives // regarding Nodelist length in IE var length = !!obj && "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { return false; } return type === "array" || length === 0 || typeof length === "number" && length > 0 && ( length - 1 ) in obj; } each: function( obj, callback ) { var length, i = 0; if ( isArrayLike( obj ) ) { length = obj.length; for ( ; i < length; i++ ) { if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; } } } else { for ( i in obj ) { if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; } } } return obj; }, AND (both classes) var list = document.getElementsByClassName("class1 class2"); var list = document.querySelectorAll(".class1.class2"); OR (at least one class) var list = document.querySelectorAll(".class1,.class2"); XOR (one class but not the other) var list = document.querySelectorAll(".class1:not(.class2),.class2:not(.class1)"); NAND (not both classes) var list = document.querySelectorAll(":not(.class1),:not(.class2)"); NOR (not any of the two classes) var list = document.querySelectorAll(":not(.class1):not(.class2)");