Mercurial > nebulaweb3
diff default/node_modules/shoestring/src/dom/parents.js @ 0:1d038bc9b3d2 default tip
Up:default
author | Liny <dev@neowd.com> |
---|---|
date | Sat, 31 May 2025 09:21:51 +0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/default/node_modules/shoestring/src/dom/parents.js Sat May 31 09:21:51 2025 +0800 @@ -0,0 +1,42 @@ +//>>excludeStart("exclude", pragmas.exclude); +define([ "shoestring" ], function(){ +//>>excludeEnd("exclude"); + + /** + * Returns the set of all parents matching the selector if provided for each element in the current set. + * + * @param {string} selector The selector to check the parents with. + * @return shoestring + * @this shoestring + */ + shoestring.fn.parents = function( selector ){ + var ret = []; + + this.each(function(){ + var curr = this, match; + + while( curr.parentElement && !match ){ + curr = curr.parentElement; + + if( selector ){ + if( curr === shoestring( selector )[0] ){ + match = true; + + if( shoestring.inArray( curr, ret ) === -1 ){ + ret.push( curr ); + } + } + } else { + if( shoestring.inArray( curr, ret ) === -1 ){ + ret.push( curr ); + } + } + } + }); + + return shoestring(ret); + }; + +//>>excludeStart("exclude", pragmas.exclude); +}); +//>>excludeEnd("exclude");